使用 ITextRenderer 从 HTML 生成泰卢固语 PDF 没有得到准确的字符?

Generation of Telugu PDF from HTML using ITextRenderer does not getting exact characters?

使用 ITextRenderer 从 HTML 生成泰卢固语 PDF 没有得到准确的字符?在 pdf 中出现损坏的字符(预期字符వినియోగించుకోకపోయినట్లయితే)。附上屏幕截图。enter image description here

我们使用以下代码生成带有字体的 UTF-8 pdf

1) body * { font-family: "Vani", Georgia, Serif;}

2)文档 doc = builder.parse(new ByteArrayInputStream(content.toString().getBytes("UTF-8")));

3)renderer.getFontResolver().addFont(contextPath+"fonts/VANI.TTF",BaseFont.IDENTITY_H,BaseFont.EMBEDDED); 4) jar itext 4.2 和 core-render.jar

请帮助获取 PDF 中的异常输出。

您正在使用 ITextRenderer 这会让人相信您正在使用 Flying Saucer。 Flying Saucer 不是 iText。Flying Saucer 是使用旧版本 iText 的第三方产品,并且不受 iText Group 的认可。

旧版本的 iText 不支持泰卢固语。支持天城文、泰米尔文、泰卢固文等书写系统...需要关于该主题的 pdfCalligraph add-on. This add-on is only available for iText 7. We have written a comprehensive white paper

如果您想将 HTML 的泰卢固语转换为 PDF,您无法使用 Flying Saucer 实现此目的。据我所知,唯一允许您执行此操作的工具是 iText 7, the pdfCalligraph add-on for Telugy support, and the pdfHTML add-on 的组合,可将 HTML 转换为 PDF。

更新:

如果要使用pdfCalligraph,需要添加如下依赖:

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>typography</artifactId>
    <version>[1.0,)</version>
    <scope>compile</scope>
</dependency>

由于 pdfCalligraph 是一个闭源插件,您还需要将我们的闭源存储库添加到您的存储库列表中:

<repositories>
    <repository>
        <id>central</id>
        <name>iText Repository-releases</name>
        <url>https://repo.itextsupport.com/releases</url>
    </repository>
</repositories>

最后,你需要引入许可证密钥机制(否则pdfCalligraph会抛出一个com.itextpdf.licensekey.LicenseKeyException或一个java.io.FileNotFoundException:itextkey.xml):

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext-licensekey</artifactId>
    <version>[2.0,)</version>
    <scope>compile</scope>
</dependency>

您需要一个许可证密钥 (KEY),并且您需要像这样加载该密钥:

LicenseKey.loadLicenseFile(new FileInputStream(KEY));

KEY 包含 XML 文件的路径。此 XML 文件是您的许可证密钥。您可以在此处获得这样的 XML 文件:free trial.