使用itextsharp 5.0.5.0无法将字体正确嵌入生成的PDF中

时间:2018-09-26 13:59:57

标签: itext

我正在尝试使用itextsharp api使用以下代码为“古吉拉特语字体”生成PDF。

BaseFont古吉拉特语= BaseFont.CreateFont(“ D \ Gujarati \ shruti.ttf”,BaseFont.IDENTITY_H,BaseFont.EMBEDDED);             Font fontNormal = new Font(gujarati,10,Font.NORMAL);

生成PDF,但字体显示不正确。如果我将相同的PDF转换为word,则可以正确显示字体。

1 个答案:

答案 0 :(得分:0)

本文详细介绍了如何加载pdfCalligraph,使用正确的字体(因为该字体必须能够显示字符),以及如何将其添加到PdfDocument

首先,您需要确保pdfCalligraph在类路径中。 如果您使用的是Maven,只需添加依赖项。

https://developers.itextpdf.com/content/itext-7-jump-start-tutorial/installing-itext-7

第二,您需要加载有效的许可证。 pdfCalligraphiText平台的开源附件。因此需要许可证。

https://developers.itextpdf.com/content/license-key-frequently-asked-questions/how-do-i-load-license-key

接下来,应该使用以下代码示例。

Document arabicPdf = new Document(new PdfDocument(new PdfWriter("/path/to/arabic.pdf")));

// Arabic text starts near the top right corner of the page
arabicPdf.setTextAlignment(TextAlignment.RIGHT);

// create a font, and make it the default for the document
PdfFont f = PdfFontFactory.createFont("/path/to/DroidKufi-Regular.ttf", PdfEncodings.IDENTITY_H, true);
arabicPdf.setFont(f);

// add content: السلام عليكم (as-salaamu 'aleykum - peace be upon you)
arabicPdf.add(new Paragraph("\u0627\u0644\u0633\u0644\u0627\u0645 \u0639\u0644\u064A\u0643\u0645"));

arabicPdf.close();

它是从iText网站上逐字复制的。 https://itextpdf.com/itext7/pdfcalligraph