c# - 罗马尼亚语字符不适用于 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);
}
}
请你帮助我好吗?
解决方案
推荐阅读
- java - 如何解决这个 Hibernate JPA 查询?
- time - 提前期的 Power BI 图表类型
- android - Android数据绑定MockK:每个{}块内都缺少调用
- r - 返回仅出现一次的列中的值
- ruby-on-rails - 我可以在 Redmine 的 Sprint 上添加自定义字段吗?
- python-3.x - 将 2 级 Pandas 多指数系列的指数相互绘制
- c# - 如何使用 c# 处理 ASP.Net Web 应用程序中的 WebException?
- python - 在 pandas 的每一行数据框中发送带有数据的 post 请求
- azure-devops - 每个测试程序集的 VSTest 任务并行化
- swiftui - SwiftUI - 按下后退按钮时从 NavigationView 重新加载视图