我有一个嵌入了Type 3字体的PDF。如何将此Type 3字体转换为Type 1字体?
谢谢, 巴拉吉
答案 0 :(得分:1)
你可能无法; Type 3字体可以包含任何PostScript;类型1字体只能包含受限制的子集。
答案 1 :(得分:0)
问到这个问题已经有很多年了,但是我要发布给遇到此问题的其他任何人(例如我)。最好的解决方案是使用设置重新生成PDF,避免使用3型字体。例如,如果您使用matplotlib制作图形,则可以按照此处的说明进行操作:http://phyletica.org/matplotlib-fonts/
如果无法重新生成PDF或需要太多时间,我还发现使用convert
(位于imagemagick
中)可以提供帮助。正如其他人所说,您可能会丢失信息,但这在大多数情况下仍然有效:convert example.pdf example.pdf
答案 2 :(得分:0)
其他答案建议从源文件重新生成以输出Type 1字体,而不是Type 3字体。在可行的情况下,这可能是最好的解决方案,但是在某些情况下,这是不可能的(例如,如果源文件或生成程序由于某种原因不可用)。请允许我提供另一种方法。
如何“转换” Type 3字体
通过在Adobe Acrobat Pro中打开文件,然后将文件打印到Adobe PDF(由Adobe Distiller提供的虚拟打印机,Professional套件的一部分),我可以“转换” PDF图形中的Type 3字体。 )。我使用的是Adobe Pro套件版本11(ca 2012),但是较新的版本大概可以做到这一点。这个动作听起来很循环,但实际上是让您有机会强制将字体呈现为新的PDF。
我的版本中的默认输出设置足以生成与源PDF在视觉上无法区分的PDF,但其中所有Type 3字体都直接呈现为矢量图形(即输出PDF)不包含任何字体用法)。 Acrobat打印对话框(至少在我的Windows版本中)还具有“属性”和“高级”按钮,在其中可以对输出进行各种高度详细的调整。这些内容包括要嵌入的Type 1字体列表(以及部分嵌入的设置),输出兼容性(我使用Acrobat 6 / PDF 1.5),可选的图像下采样等。
请注意,此过程可能会导致PDF输出文件大得多。就我而言,使用Type 3字体的冒犯性文字在四分之一页的图形上只有几十个标签,而在此转换过程中,PDF文件的大小增加了约2倍;但是绝对大小保持在50kB以下,因此扩展对于我的目的并不重要。对于较大的文档或使用Type 3字体的带有更多文本的文档,扩展可能会更明显,因此称为YMMV。