使用iTextSharp的嵌入字体成pdf(embed font into pdf using it

2019-09-17 02:24发布

我试图嵌入使用iTextSharp的5.2.1.0的字体,但我得到的错误。 字体为KozGoPro-Light.otf它做了一些研究之后是japenese字体。 我曾尝试以下...

        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格式。 任何线索?

Answer 1:

当您使用IDENTITY_H一个编码iTextSharp的自动打开字体子集。 不幸的似乎仍然是一个错误的代码。 现在的解决方法就是关闭子集为字体:

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


文章来源: embed font into pdf using itextsharp