我有一个由LibreOffice生成的PDF表单。由于LibreOffice中的known bug只有字体子集嵌入到PDF中,即使在表单字段中使用该字体也是如此。因此,如果计算机上未安装该字体,则表单不可用或表单字段使用错误的前端(取决于PDF查看器)。
所以我必须在LibreOffice中生成后用整个字体替换PDF格式的表单子集。通常建议使用ps2pdf
或gs
来修复pdf中的字体问题。但这两个程序都不支持PDF格式。如果在PDF表单上使用它们,表单字段将被破坏。我在Unbunt 14.04 LTS下用Ghostscript 9.10进行了测试。
我可以使用pdffonts
来显示PDF中嵌入的字体。但是还有一个命令行工具可以将另一种字体嵌入到PDF中吗?
答案 0 :(得分:1)
Libreoffice v5.2为表单字段嵌入字体很简单:
在表单字段中启用字体: ()右键单击表单字段>控制>字体
然后告诉您的文档将使用过的字体包含在其文件中: ()文件>属性>字体标签>将字体嵌入文档中 在我的情况下,文件大小从50k增加到5000k(使用一种字体 有两种风格)。
最后检查PDF选项以将字体包含在pdf中: ()文件>导出到Pdf>常规选项卡: x启用“创建PDF”表单(使表单字段为用户填写)。 不确定是否需要以下两个选项: x标记的PDF和 x混合PDF:后者会将pdf放大到LibreOffice文件的大小。
答案 1 :(得分:1)
在错误得到解决之前,您可以使用PDF Toolbelt修复表单。
下载JAR文件后,可以将所有字段的字体重置为Adobe Acrobat的默认值:
java -jar ./pdf-toolbelt.jar form-font-defaults input.pdf output.pdf
<小时/> 免责声明:我是上述工具的作者。
答案 2 :(得分:0)
这只是一种解决方法:在页面上放置一个不可见和锁定的文本编辑字段,其中包含您可能的字符集的默认字符串。虽然你仍然会得到一个子集字体,但它将是一个更大的子集。
答案 3 :(得分:0)
如果商业应用程序在您的情况下是一个可行的选择,那么有许多商业解决方案可以完全嵌入PDF格式(它们将会很昂贵而且#34;只是&#34;可能这样做)。两个主要的竞争者可能是卡拉斯pdfToolbox(警告:我与此产品相关)和Enfocus Pitstop。