我有一个使用多种字体的大型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";
}
}
}
答案 0 :(得分:0)
Acrobat的JS对象模型不允许您更改页面内容,没有。
从视觉上来说,将一种字体克服到另一种字体中通常是一个坏主意。字母之间的适当间距可以从一种字体到另一种字体变化,输出看起来......好......太糟糕了。这种扭曲的间距也可以抛出“word finder”算法,导致他们认为没有单词断点,或者认为两个或更多单词都是一个大词。
不漂亮。
真正的问题很可能是字体本身。它甚至可能字体的编码这就是问题,而不是字体本身。内容流中的字节方式被解释为字符。
您可以在文档属性对话框的(control + d)“fonts”选项卡中看到不同字体使用的编码。我怀疑你的非arial字体正在使用一些不寻常的东西......很可能是“Identity-H”或“Custom”。
更改PDF中文本的编码是一个非常难的问题。
最后,要查看理论上是否可以提取文本,请尝试将其复制并粘贴到Acrobat中的PDF中。如果你能做到这一点,那么其他一些程序也可以。如果你不能(或者它作为垃圾出现),那么其他程序可能会面临类似的缺乏成功。
那时你唯一能做的就是OCR。光学字符识别。我相信Acrobat Pro附带了一个简单的OCR程序,虽然我可能会弄错。我从来没有用过它。