使用ITextRenderer从HTML生成Telugu PDF无法获得确切的字符?在PDF格式中获得破碎的字符(预期的字符串,以及其他字符串)。附加屏幕截图。enter image description here
我们使用以下代码生成带字体
的UTF-8 pdf1)body * {font-family:“Vani”,Georgia,Serif;}
2)文档doc = builder.parse(new ByteArrayInputStream(content.toString()。getBytes(“UTF-8”)));
3)renderer.getFontResolver()addFont(的contextPath + “字体/ VANI.TTF”,BaseFont.IDENTITY_H,BaseFont.EMBEDDED); 4)jars itext 4.2和core-render.jar
请帮助获取PDF中的例外输出。
答案 0 :(得分:3)
您正在使用ITextRenderer
导致相信您正在使用Flying Saucer。 Flying Saucer不是iText。 Flying Saucer是使用旧版iText的第三方产品,并未得到iText Group的认可。
旧版iText不支持泰卢固语。支持编写Devenagari,泰米尔语,泰卢固语等系统......需要pdfCalligraph add-on。此附加组件仅适用于iText 7.我们已就此主题撰写了全面的white paper。
如果您想将带有泰卢固语的HTML转换为PDF,则无法通过Flying Saucer实现此目的。据我所知,允许您执行此操作的唯一工具是iText 7,Telugy支持的pdfCalligraph add-on和将HTML转换为PDF的pdfHTML add-on的组合。 / p>
<强>更新强>
如果要使用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。