使用 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.
使用 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.