如何将PDF中的Type 3字体转换为Type 1字体

12

我有一个包含Type 3字体的PDF文件,如何将这个Type 3字体转换成Type 1字体?

4个回答

4
多年前有人提出过这个问题,但是我为了其他遇到这个问题的人(包括我自己)而发帖。最好的解决方法是使用设置来重新生成PDF以避免使用Type 3字体。例如,如果您使用matplotlib制作图形,则可以按照此处的说明进行操作:http://phyletica.org/matplotlib-fonts/ 如果不可能重新生成PDF或者需要太多时间,那么我还发现使用convert(在imagemagick中找到)也可以帮助解决问题。正如其他人所说,您可能会丢失一些信息,但在大多数情况下这都可以解决:convert example.pdf example.pdf

1

你可能无法实现;Type 3字体可以包含任何PostScript;Type 1字体只能包含受限子集。


但是在转换为swf时,Type 3字体会显示为图像。是否有办法在转换为swf时将Type 3转换为Type 1字体?谢谢。 - Balaji

1

其他答案建议从源文件重新生成输出Type 1字体而不是Type 3字体。当可行时,这可能是最好的解决方案,但在某些情况下可能不可能(例如,如果源文件或生成程序由于任何原因不可用)。请允许我提供一种替代方法。

如何“转换”Type 3字体

我能够通过在Adobe Acrobat Pro中打开文件,然后将文件打印到Adobe PDF(Adobe Distiller的虚拟打印机之一,属于专业套件),来“转换”PDF图中的Type 3字体。我使用的是Adobe Pro套件版本11(约2012年),但更新版本可能也可以做到同样的事情。这个操作听起来循环,但它实际上给了你一个机会,强制将字体渲染成新的PDF。

在我的版本中,默認的輸出設置足以生成一個與源PDF在視覺上無法區分的PDF,但其中所有的Type 3字體都被直接渲染為向量圖形(即輸出PDF不包含任何字體使用)。Acrobat打印對話框(至少在我的Windows版本中)還有“屬性”和“高級”按鈕,可以進行各種高度詳細的輸出調整。這些包括像嵌入的Type 1字體列表(以及部分嵌入的設置)、輸出兼容性(我使用的是Acrobat 6 / PDF 1.5)、可選的圖像降採樣等。

請注意,此程序可能會導致輸出PDF文件大小顯著增加。在我的情況下,使用Type 3字體的冒犯文本只是一個四分之一頁圖中的幾十個標籤,轉換期間PDF文件大小增加了約2倍;但絕對大小仍然低於50kB,因此擴展對我的目的沒有影響。對於更大的文檔或使用更多Type 3字體的文本,擴展可能更加明顯,因此結果可能會有所不同。


谢谢,这确实可以生成Illustrator可以处理的字体,但每个字符都是独立的。最好重新生成。对于遇到此问题的Python Matplotlib用户,请参见http://phyletica.org/matplotlib-fonts/。 - tobi delbruck

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接