【问题标题】:iText XMLWorkerHelper font with CE characters带有 CE 字符的 iText XMLWorkerHelper 字体
【发布时间】:2016-03-20 13:58:55
【问题描述】:

我在使用 iText XMLWorkerHelper 将 HTML 转换为 PDF 时遇到了麻烦。文档生成良好,但最终没有一些中欧字符(克罗地亚字母,如 č、ć、đ、ž)。

当我在没有 XMLWorkerHelper 的情况下编写文本并从数据库中定义字体时,相同的文本被正确写入:

Dim fntArial As BaseFont = BaseFont.CreateFont("Helvetica", BaseFont.CP1250, BaseFont.NOT_EMBEDDED)
Dim fontText10 As Font = New Font(fntArial, 10)

但是当我使用 XMLWorkerHelper 时,CE 字符会丢失。

Dim pdfDokument As New Document()
Dim docContent As String = "<style>" & _
                           "@font-face {font-family: 'Arial'; src: url('fonts/arial.ttf') format('truetype');}" & _
                           "body, td, div, span{font-family: 'Arial'; color: #253f60; font-size: 12px;}" & _
                           ...
                          "</style>" & _
                          "HTML content from database"
Dim wrtPDF As PdfWriter = PdfWriter.GetInstance(pdfDokument, New FileStream(Request.PhysicalApplicationPath & docName, FileMode.Create))
pdfDokument.Open()
Dim worker As XMLWorkerHelper = XMLWorkerHelper.GetInstance
worker.ParseXHtml(wrtPDF, pdfDokument, New StringReader(docContent))

如何将 CE 字体嵌入 PDF 文档并将其设置为 XMLWorkerHelper 的默认字体?

【问题讨论】:

  • 查看对this post 的编辑,这表明您可以将默认字体提供程序作为第五 参数传递给ParseXHtml()。只要您之前使用您的字体调用过FontFactory.Register(),就可以了。

标签: pdf fonts itextsharp html-to-pdf xmlworker


【解决方案1】:

我终于想出了如何提供我想要使用的字体。 首先我指定了完整的字体路径,包括字体本身(如 c:/windows/fonts/arial.ttf)并且没有任何改变,然后我尝试了不同的编码,最终我只传递了解决我问题的字体文件夹的路径(在我阅读之后XMLWorkerFontProvider 类定义)。

克里斯,谢谢你为我指明了正确的道路。

Dim worker = XMLWorkerHelper.GetInstance()
Dim htmlContent = new MemoryStream(Encoding.UTF8.GetBytes(docContent))
Dim css As memoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(""))
worker.ParseXHtml(wrtPDF, pdfDokument, htmlContent, css, System.Text.Encoding.UTF8, new XMLWorkerFontProvider("c:/windows/fonts/"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多