我正在尝试使用基本上包含 Unicode 字符的 iText v2.1.5 生成 pdf,Ariel 是用于相同的字体。现在的问题是某些字符(如“印地语”和“古吉拉特语”字符)在正确生成时遇到了问题。请查看下面的屏幕截图以更好地了解问题。
图表和表格中突出显示的字体使用相同的字体,但表格中的字体不适合印地语和古吉尔语字符。
Graph(融合图表)中突出显示的字符是使用 PhantomJS 生成的,并作为 png 图像嵌入到 pdf 中。下表中的字符与 Graph 中使用的字符具有相同的“Arial_Unicode_MS.ttf”字体(在 linux 机器中位于/usr/share/fonts/truetype/Arial_Unicode_MS.ttf),但该表是生成的使用 iText,我无法弄清楚为什么会导致这种意外行为。
我试过调试 phantomJS,我可以保证它使用与上面提到的相同的字体文件。请引用我在 iText 中的以下代码:
String formattedData="જિજ્ઞેશ";
BaseFont nationalBase = BaseFont.createFont("/usr/share/fonts/truetype/Arial_Unicode_MS.ttf", BaseFont.COURIER, BaseFont.NOT_EMBEDDED);
PdfPCell dataCell= new PdfPCell(new Phrase(8, new Chunk(formattedData, dataFont)));
为了检查问题是否是因为 iText,我尝试直接在 formattedData="જિજ્ઞેશ"中使用 Unicode 字符,但生成的表格中反射(reflect)的字体仍然与我最初使用的有很大不同。
最佳答案
正如之前多次解释的那样,iText 5 不支持印地语。我们在 iText 7 中修复了此问题,并在印度发布了该版本的 Great Indian Developer Summit .
iText 7 有一个特殊的附加组件,名为 pdfCalligraph只要您插入此附加组件,Devaganari 和泰米尔语就会正确呈现。请阅读Chapter 2 of "iText 7: Building Blocks" (请滚动至本章末尾)了解 pdfCalligraph 插件的工作原理。您可以获得 pdfCalligraph 的免费试用版 here .
目前支持天城文、泰米尔语和阿拉伯语。将应付费客户的要求添加对其他书写系统的支持。
关于pdf - iText 在 pdf 中变形/拼写错误的 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37861083/