itextsharp XMLWorker 라이브러리를 사용하여 일부 HTML을 PDF로 구문 분석하려고합니다. 그것은 잘 작동하지만 내 PDF로 일부 유니 코드 문자 (터키어) 렌더링 할 수 없습니다.iTextSharp에서 글꼴 패밀리를 설정할 수 없습니다. XMLWorker
나는이 문제에 대해 여러 블로그를 읽고 모두 유니 코드 문자를 지원하는 글꼴을 등록 할 것을 제안합니다. 그런 다음 외부 CSS 파일에서 사용할 글꼴 패밀리를 지정해야합니다.
html
{
font-family: 'Arial Unicode MS';
}
나는 또한 모두 Arial
을 가족으로 시도했습니다. 나는 html로 가족을 설정하려고 시도했다.
<body face = 'Arial'>
누구도 작동하지 않습니다. 글꼴은 문제없이 등록되며 외부 CSS 파일도 작동합니다.
이 내가 PDF로 HTML로 변환하는 방법이다,
string arialuniTff = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF");
FontFactory.Register(arialuniTff);
// Resolve CSS
var cssResolver = new StyleAttrCSSResolver();
var cssFile = XMLWorkerHelper.GetCSS(new FileStream(Server.MapPath("~/Content/Editor.css"), FileMode.Open));
cssResolver.AddCss(cssFile);
// HTML
CssAppliers ca = new CssAppliersImpl();
HtmlPipelineContext hpc = new HtmlPipelineContext(ca);
hpc.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
// PIPELINES
PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer);
HtmlPipeline htmlPipe = new HtmlPipeline(hpc, pdf);
CssResolverPipeline css = new CssResolverPipeline(cssResolver, htmlPipe);
XMLWorker worker = new XMLWorker(css, true);
XMLParser p = new XMLParser(worker);
StringReader sr = new StringReader("<html><head></head><body>" + topMessage.Replace("<br>", "<br></br>") + "</body></html>");
p.Parse(sr);