我正在使用Apache PDFBox在页面上书写阿拉伯文字而不嵌入字体。似乎ArialMT通常是可用的,这样两个PDFBox都可以工作,PDF查看器不会遇到最终文档的问题;但是,我还没有设法找到一种代码策略,通过它可以使用字体,但不会嵌入。
注意:PDF标准完全可以实现,我已经看过这样生成的文档。
ADDENDUM(进一步解释案例)
非嵌入字体的特定情况是我生成带有图像的文档并在图像上放置不可见文本(例如通过OCR生成)的情况。当符合PDF / A标准时,不需要在这种情况下嵌入字体,因为图像是文档光栅化的唯一来源。 “标准14”字体不包含阿拉伯语代码点,因此需要引用另一种字体才能使PDFBox正常工作,但加载字体会使其嵌入。
答案 0 :(得分:1)
详细说明蒂尔曼的评论,
仅仅因为你可以做某事并不意味着你应该做。有些计算机没有太多字体,结果可能很奇怪
它们是完全正确的:不要这样做,使用子集嵌入,因为不同的设置可以有不同版本的Arial ,所有这些版本都将针对ArialMT标识符解析,但具有完全不同的内部glyphIDs
由于PDF指向的是字形,而不是“字母”,看起来像cake
的Arial副本可能会被编码为字形数组 - 在不同版本的Arial中最终为B^r(
。这甚至包括你自己可能最终使用一年后更新版本的Arial:突然你的PDF文件即使对你来说也完全无法使用。
PDF应该是独立的文件。如果您希望人们阅读您的PDF,请对您使用的字体使用子集嵌入,即使它们被称为“通常可用”。不嵌入字体的唯一方法是使文档使用only fonts from the predefined standard set of 14 fonts,任何PDF规范兼容的读者必须附带该文档才能呈现没有字体嵌入的内容。并注意Arial不在该列表中。