【问题标题】:embed font into pdf using itextsharp使用 itextsharp 将字体嵌入 pdf
【发布时间】:2012-05-07 17:34:58
【问题描述】:

我正在尝试使用 itextsharp 5.2.1.0 嵌入字体,但出现错误。字体是 KozGoPro-Light.otf,经过一番研究,它是一种日本字体。我已经尝试了以下...

        Dim tblx1 As PdfPTable = New PdfPTable(1)
        Dim tblrightcell_margin2 As PdfPCell
        Dim bfR As iTextSharp.text.pdf.BaseFont

        **bfR = iTextSharp.text.pdf.BaseFont.CreateFont("KozGoPro-Light.otf", iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.EMBEDDED)
        fntKozgoProExtra = New Font(bfR, 18)**

        tblrightcell_margin2 = New PdfPCell(New Phrase("testing....", fntKozgoProExtra))

        tblx1.AddCell(tblrightcell_margin2)

当我尝试将字体添加到短语时,它会说对象引用未设置为对象的实例。如果我将 iTextSharp.text.pdf.BaseFont.IDENTITY_H 更改为 CP1252 或任何这些编码,它只会在 pdf 上显示不正确。有什么线索吗?

【问题讨论】:

  • 使用 itextsharp 5.2.1.0

标签: pdf fonts itextsharp itext


【解决方案1】:

当您使用IDENTITY_H 进行编码时,iTextSharp 会自动打开字体子集。不幸的是,该代码中有appears to still be a bug。目前的解决方案是关闭该字体的子集:

bfR = iTextSharp.text.pdf.BaseFont.CreateFont(FontFile, iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.EMBEDDED)
bfR.Subset = False

【讨论】:

  • 我看到你显示的错误链接是 2011 年 6 月,但我刚刚下载了最新的 iText 版本,看来这个错误仍然存​​在(!)。是否有任何可能的错误跟踪器,以便我可以跟踪进度?
  • 我不知道是否有公共错误数据库,但你可以在他们的邮件列表中询问(确保先阅读规则)lists.sourceforge.net/lists/listinfo/itext-questions
猜你喜欢
  • 1970-01-01
  • 2016-12-11
  • 2014-04-06
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 2018-09-05
相关资源
最近更新 更多