使用一些实用程序或脚本将嵌入的PDF字体提取到外部ttf文件

使用一些实用程序或脚本将嵌入的PDF字体提取到外部ttf文件,pdf,fonts,scripting,flash,extract,Pdf,Fonts,Scripting,Flash,Extract,是否可以使用一些实用程序或脚本将嵌入在PDF文件中的字体提取到外部ttf文件 如果系统中存在嵌入或未嵌入PDF文件的字体。使用swftools中的pdf2swf和swfextract工具,我能够确定PDF文件中使用的字体名称。然后我可以在运行时编译相应的系统字体,然后加载到我的AIR应用程序中 但如果系统中没有PDF中使用的字体,则有两种可能: 2.1。如果PDF文件中没有,也没有嵌入,我们只能根据字体名称使用类似的系统字体 2.2。如果它们嵌入在PDF文件中,那么我想知道是否有可能将它们提取到

是否可以使用一些实用程序或脚本将嵌入在PDF文件中的字体提取到外部ttf文件

如果系统中存在嵌入或未嵌入PDF文件的字体。使用swftools中的pdf2swf和swfextract工具,我能够确定PDF文件中使用的字体名称。然后我可以在运行时编译相应的系统字体,然后加载到我的AIR应用程序中

但如果系统中没有PDF中使用的字体,则有两种可能:

2.1。如果PDF文件中没有,也没有嵌入,我们只能根据字体名称使用类似的系统字体

2.2。如果它们嵌入在PDF文件中,那么我想知道是否有可能将它们提取到外部ttf文件中,以便在运行时将它们编译为单独的swf文件


我知道你问这个已经有一段时间了,但我想我也许能帮上忙

我不知道是否有任何实用程序可以让您提取字体文件,但您可以手动执行

基本上,PDF文件是包含不同对象的文本文件。您可以使用任何文本编辑器打开它并查找字体

字体在FontDescriptor对象中指定,例如:

<</Type/FontDescriptor/FontName/ABCDEE+Algerian ... /FontFile2 24 0 R>>

我希望这能帮助你。。。或者帮助别人

我知道你问这个问题已经有一段时间了,但我想我也许能帮上忙

我不知道是否有任何实用程序可以让您提取字体文件,但您可以手动执行

基本上,PDF文件是包含不同对象的文本文件。您可以使用任何文本编辑器打开它并查找字体

字体在FontDescriptor对象中指定,例如:

<</Type/FontDescriptor/FontName/ABCDEE+Algerian ... /FontFile2 24 0 R>>

我希望这能帮助你。。。或者帮助其他人

这是一个迟来的答案,但我找到了一种使用免费windows程序来实现这一点的方法。不需要脚本编写、编译或cygwin。只需几步,但并不像看上去那么糟

安装mupdf 链接- 并将您的pdf复制到mupdf的安装文件夹中。假设它叫whatever.pdf

打开dos/命令提示符。导航到mupdf安装文件夹。 示例:cd C:\Program Files\mupdf …如果进展顺利,您的提示现在应该如下所示:C:\Program Files\mupdf> 现在键入以下命令: pdfextract whatever.pdf

之后,在mupdf程序文件夹中,您将拥有一个或多个字体文件。他们会有像ABCDEF+Fontname-12.cff这样的名字…现在他们是不可用的.cff格式,但我们会解决这个问题。我建议将此重命名为不那么尴尬的名称。。。例如whatever.cff

对不起,再来点。您需要一个名为cfftot1.exe的工具。这里有一个链接: …将其复制到您的mupdf文件夹中。然后键入以下内容: cfftot1 whatever.cff whatever.pfb

现在您有了一个几乎可用的字体文件whatever.pfb。我之所以说“几乎”,是因为通常PFB字体文件还附带第二个文件,即包含间距信息的PFM文件。没有这个文件,字体将无法安装,间距将被拧紧。但字体仍将在字体编辑器(如fontlab)中打开。您可以将字体从那里保存到TTF或OTF。您也可以尝试自己修复间距

如果没有字体编辑器,可以使用crossfont。Crossfont可以获取PFB并生成必要的PFM文件,这样您至少可以安装和使用该字体。 链接-


就这样

这是一个迟来的答案,但我找到了一种使用免费的windows程序来实现这一点的方法。不需要脚本编写、编译或cygwin。只需几步,但并不像看上去那么糟

安装mupdf 链接- 并将您的pdf复制到mupdf的安装文件夹中。假设它叫whatever.pdf

打开dos/命令提示符。导航到mupdf安装文件夹。 示例:cd C:\Program Files\mupdf …如果进展顺利,您的提示现在应该如下所示:C:\Program Files\mupdf> 现在键入以下命令: pdfextract whatever.pdf

之后,在mupdf程序文件夹中,您将拥有一个或多个字体文件。他们会有像ABCDEF+Fontname-12.cff这样的名字…现在他们是不可用的.cff格式,但我们会解决这个问题。我建议将此重命名为不那么尴尬的名称。。。例如whatever.cff

对不起,再来点。您需要一个名为cfftot1.exe的工具。这里有一个链接: …将其复制到您的mupdf文件夹中。然后键入以下内容: cfftot1 whatever.cff whatever.pfb

现在您有了一个几乎可用的字体文件whatever.pfb。我之所以说“几乎”,是因为通常PFB字体文件还附带第二个文件,即包含间距信息的PFM文件。没有这个文件,字体将无法安装,间距将被拧紧。但字体仍将在字体编辑器(如fontlab)中打开。您可以将字体从那里保存到TTF或OTF。您也可以尝试自己修复间距

如果没有字体编辑器,可以使用crossfont。Crossfont可以获取PFB并生成必要的PFM文件,以便 至少可以安装和使用该字体。 链接-


就这样

几年前,我设计了一种特殊的字体。我花了大约一年的时间断断续续地工作。有一天,我的Maxtor硬盘死了,我无法恢复我的工作。但我在一些PDF文件中为我的客户嵌入了这种字体。然后我有了从这些文件中提取字体的想法。在网上寻找答案大约一年后,我想出了一个从PDF中提取字体的方法。我已经在我的博客上介绍了这个方法。自从我提出这个解决方案以来,出现了许多替代者,但多样性并没有错。我写这篇文章是为了帮助其他需要恢复失去的工作的人。祝您玩得开心,如果您需要帮助,请随时与我联系。

几年前,我设计了一种特殊字体。我花了大约一年的时间断断续续地工作。有一天,我的Maxtor硬盘死了,我无法恢复我的工作。但我在一些PDF文件中为我的客户嵌入了这种字体。然后我有了从这些文件中提取字体的想法。在网上寻找答案大约一年后,我想出了一个从PDF中提取字体的方法。我已经在我的博客上介绍了这个方法。自从我提出这个解决方案以来,出现了许多替代者,但多样性并没有错。我写这篇文章是为了帮助其他需要恢复失去的工作的人。玩得开心,如果您需要任何帮助,请随时与我联系。

获取cfftot1.exe的链接已更改为

获取cfftot1.exe的链接已更改为

小更新-某些PDF包含嵌入另一种独特格式的字体,如.CID文件。 此格式适用于支持大量字符的字体,例如亚洲语言字体,并且不会以典型方式将字形映射到字母

您仍然可以从.CID文件中获得可用的字体,您只需要在上面我的答案中添加一个步骤。 通过名为PStill GPStill的程序运行PDF。网址如下:

选择输入时,将下拉列表从Postscript文件更改为PDF文件。 您的输出PDF将附加新的内容。 如果需要解锁PDF,可以使用Elcomsoft提供的高级PDF密码恢复

此步骤所做的是将PDF中嵌入的CID字体转换为PFA type 1字体。因此,在运行PDFextract之后,您可以将.PFA文件导入Fontlab,也可以导入Crossfont,而不是一堆无用的.CID文件。请注意,这些字母可能无法正确映射,因此您确实需要Fontlab之类的工具来移动它们,以便在键盘上键入A不会导致字母R


与以往一样,如果字体仅作为子集嵌入,则不会得到整个字体,只会得到一组有限的字母。

次要更新-某些PDF包含以另一种独特格式嵌入的字体,如.CID文件。 此格式适用于支持大量字符的字体,例如亚洲语言字体,并且不会以典型方式将字形映射到字母

您仍然可以从.CID文件中获得可用的字体,您只需要在上面我的答案中添加一个步骤。 通过名为PStill GPStill的程序运行PDF。网址如下:

选择输入时,将下拉列表从Postscript文件更改为PDF文件。 您的输出PDF将附加新的内容。 如果需要解锁PDF,可以使用Elcomsoft提供的高级PDF密码恢复

此步骤所做的是将PDF中嵌入的CID字体转换为PFA type 1字体。因此,在运行PDFextract之后,您可以将.PFA文件导入Fontlab,也可以导入Crossfont,而不是一堆无用的.CID文件。请注意,这些字母可能无法正确映射,因此您确实需要Fontlab之类的工具来移动它们,以便在键盘上键入A不会导致字母R


一如既往,如果字体仅作为子集嵌入,您将无法获得整个字体,只能获得有限的一组字母。

@willw我对此也很感兴趣。我在PDF中找到了我认为相关的流。然而,我真的不懂编程。如何编译和运行此脚本?它从哪里得到我的输入文件?我还可以将流字符复制并粘贴到新的文本文件中,以生成有效的输入文件吗?是否有在线解码器可以接受此文件并输出解压缩文件?对不起,有10000个问题。希望你能帮忙。@willw我也对这个感兴趣。我在PDF中找到了我认为相关的流。然而,我真的不懂编程。如何编译和运行此脚本?它从哪里得到我的输入文件?我还可以将流字符复制并粘贴到新的文本文件中,以生成有效的输入文件吗?是否有在线解码器可以接受此文件并输出解压缩文件?对不起,有10000个问题。希望你能帮忙。