我想使用Apache PDFBox 1.8.8创建一个包含unicode字符的PDF,但我对所支持的内容和不支持的内容感到困惑。
发布的答案here表明这是一个已修复在主干上的错误。
发布的另一个答案here表明我必须自己进行翻译。
另一个(较早的)答案发布here谈到嵌入字体。
请有人澄清一下。此外,如果它是一个现在修复的错误,有人可以告诉我PDFBox的下一个版本可能是什么时候。
感谢。
答案 0 :(得分:5)
基本上你链接的所有答案都是正确的。您必须记住它们分别引用的PDFBox版本。
关于this answer:
在2.0.0之前的版本(直到当前的1.8.8)中,文本绘制操作非常有限,甚至不支持完整的WinAnsi编码,这些版本生成的字体对象用作编码。
关于this answer:
当前的2.0.0-SNAPSHOT开发状态有了很大改进。这意味着文本绘制操作的限制已被删除,它们正确编码文本,并且使用的字体被正确编码和嵌入。这些改进的早期实施中的错误大多已经修复。
关于this answer:
这个答案指出了一个人需要牢记的事情,无论使用哪个PDFBox版本:特定字体不一定支持整个Unicode范围的代码点。如果您使用的字体不包含字符的字形定义,则可以根据需要进行编码,从而无法正确绘制字符。这尤其涉及每个PDF查看器必须支持的标准14种字体:它们只需要支持少数拉丁文编码的字符,而不是完整的Unicode集。