0

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

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

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

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

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

请帮助获取 PDF 中的例外输出。

4

1 回答 1

3

您正在使用ITextRenderer这导致相信您正在使用飞碟。飞碟不是 iText。Flying Saucer 是使用旧版 iText 的第三方产品,未经 iText Group 认可。

那个旧版本的 iText 不支持泰卢固语。支持天体文、泰米尔语、泰卢固语等书写系统需要pdfCalligraph 插件。此插件仅适用于 iText 7。我们已就此主题编写了一份综合性白皮书

如果您想将使用泰卢固语的 HTML 转换为 PDF,使用飞碟是无法实现的。据我所知,允许您执行此操作的唯一工具是iText 7、用于 Telugy 支持的pdfCalligraph 插件和用于将 HTML 转换为 PDF 的 pdfHTML 插件的组合。

更新:

如果要使用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>

最后,需要引入license key机制(否则pdfCalligraph会抛出ancom.itextpdf.licensekey.LicenseKeyException或a 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 文件:免费试用

于 2017-05-09T07:54:41.340 回答