首页 > 解决方案 > 罗马尼亚语字符不适用于 ITextSharp

问题描述

我正在尝试使用ITextSharp库版本 5.5.13.2 将 html 转换为 pdf。由于某种原因,存在于 html 中的罗马尼亚语特殊字符 ( ș, ț, ă, î, â) 被省略并且不会出现在 pdf 文件中。请你帮助我好吗?

var htmlString = "Some html string containing romanian characters";

byte[] byteArray = Encoding.Unicode.GetBytes(Format.Invariant(htmlString));
Stream reader = new MemoryStream(byteArray);

Document document = new Document(PageSize.A4, 30, 30, 30, 30);
PdfWriter writer = PdfWriter.GetInstance(document, msOutput);

document.AddTitle(PdfTitle);
document.AddSubject(PdfSubject);
document.AddAuthor(PdfAuthor);
document.AddCreator(PdfCreator);
document.AddKeywords(PdfKeyWords);

document.Open();

XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, reader, null, Encoding.Unicode, new TimesNewRomanUnicodeFontFactory());

document.Close();

而我TimesNewRomanUnicodeFontFactory的是这样的:

private class TimesNewRomanUnicodeFontFactory : FontFactoryImp
    {
        private readonly BaseFont _baseFont;

        public TimesNewRomanUnicodeFontFactory()
        {
            _baseFont = BaseFont.CreateFont(FontFactory.TIMES_ROMAN, BaseFont.CP1250, BaseFont.EMBEDDED);
        }  
    }

请你帮助我好吗?

标签: c#itext

解决方案


推荐阅读