3

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 で正しく表示されません。手がかりはありますか?

4

1 に答える 1

3

エンコーディングに使用するIDENTITY_Hと、iTextSharp は自動的にフォントのサブセット化をオンにします。残念ながら、そのコードにはまだバグがあるようです。現時点での解決策は、そのフォントのサブセット化を無効にすることです。

bfR = iTextSharp.text.pdf.BaseFont.CreateFont(FontFile, iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.EMBEDDED)
bfR.Subset = False
于 2012-05-07T20:35:07.760 に答える