在Acrobat Pro 9.1中以编程方式更改字体

时间:2010-12-16 14:07:02

标签: javascript pdf

我有一个使用多种字体的大型PDF文件。我必须将它导出到另一个只能识别Arial或Times New Roman字体的应用程序。可以在Javascript中执行此操作吗?我试了这个没有运气:

/* Changes font to Arial */
var ckWord, numWords;
for (var i = 0; i < this.numPages; i++)
{
    numWords = this.getPageNumWords(i);
    for (var j = 0; j < numWords; j++) {
        ckWord = (this.getPageNthWord(i,j))
         if (ckWord.font != "Arial") {
              ckWord.font = "Arial";

            }
        }
}

1 个答案:

答案 0 :(得分:0)

Acrobat的JS对象模型不允许您更改页面内容,没有。

从视觉上来说,将一种字体克服到另一种字体中通常是一个坏主意。字母之间的适当间距可以从一种字体到另一种字体变化,输出看起来......好......太糟糕了。这种扭曲的间距也可以抛出“word finder”算法,导致他们认为没有单词断点,或者认为两个或更多单词都是一个大词。

不漂亮。

真正的问题很可能是字体本身。它甚至可能字体的编码这就是问题,而不是字体本身。内容流中的字节方式被解释为字符。

您可以在文档属性对话框的(control + d)“fonts”选项卡中看到不同字体使用的编码。我怀疑你的非arial字体正在使用一些不寻常的东西......很可能是“Identity-H”或“Custom”。

更改PDF中文本的编码是一个非常难的问题。

最后,要查看理论上是否可以提取文本,请尝试将其复制并粘贴到Acrobat中的PDF中。如果你能做到这一点,那么其他一些程序也可以。如果你不能(或者它作为垃圾出现),那么其他程序可能会面临类似的缺乏成功。

那时你唯一能做的就是OCR。光学字符识别。我相信Acrobat Pro附带了一个简单的OCR程序,虽然我可能会弄错。我从来没有用过它。