pdf - 在 Adobe Acrobat Javascript 中,如何在脚本的某个部分作用于页面之前强制页面变为“可编辑”?
问题描述
我正在尝试做的事情:遍历 PDF 中的每一页,并提取每页上的字数。
发生了什么:下面的代码将为任何尚未“可编辑”的页面返回 0 个单词。尽管我已选择让所有页面立即变为可编辑,但在我离开该页面后,Adobe 不会在很长时间内保持页面的可编辑性。旁注:它似乎也限制了我一次可以“可编辑”的页面数量。这是一个问题,因为现在我正在处理一个 10 页的 pdf 文件选择。相同的代码必须适用于 120 多页的 pdf。请点击“编辑 PDF”-->“扫描的文档”-->“设置”,看看我所说的“可编辑”是什么意思。我已经选择了让所有页面立即变为可编辑的选项。
到目前为止我尝试过的:我尝试了各种方法让 Acrobat 使页面在“活动页面”上进行迭代,以便它可以编辑。我尝试在 for 循环的每次迭代后手动设置页码,并在示例代码中包含一个人工延迟,例如 h 变量 for 循环。我已经尝试寻找某种方法来确定哪个页面是“活动页面”,但到目前为止我还没有运气。
CurrDoc = app.activeDocs[0]
CurrDoc.title;
NumPagesInDoc = CurrDoc.numPages;
console.println("Document has "+NumPagesInDoc+" pages");
for (j=0; j<NumPagesInDoc; j++)
{
NumWordsOnPage = CurrDoc.getPageNumWords(j);
CurrDoc.pageNum = j;
for(h=0; h<10000;h++); //<--I've tried adding in delays to give time so that
//Acrobat can catch up, but this hasn't worked.
console.println("Page number: "+j+" has this number of words: "+ NumWordsOnPage);
};
输出:
Document has 10 pages
Page number: 0 has this number of words: 309
Page number: 1 has this number of words: 0
Page number: 2 has this number of words: 0
Page number: 3 has this number of words: 0
Page number: 4 has this number of words: 0
Page number: 5 has this number of words: 0
Page number: 6 has this number of words: 0
Page number: 7 has this number of words: 0
Page number: 8 has this number of words: 0
Page number: 9 has this number of words: 158
true
注意:不同的页面可能会在不同的时间处理输出,这取决于我在运行脚本之前最近单击了哪些页面。
任何指导或帮助将不胜感激。谢谢你的时间。
解决方案
所以。我仍然不完全确定问题出在哪里,但我已经找到了一种让 acrobat 大部分时间都能正常工作的方法。
在单击“使所有页面可编辑”选项之前,一直缩小直到可以看到文档中的所有页面。无论出于何种原因,当我这样做时,它似乎会刷新一些有关设置的内容,并再次使所有页面都可编辑。当我打开一个完全不同的 pdf 并按下“使所有页面可编辑”时,即使没有缩小,这似乎也有效。
推荐阅读
- jquery - 在 c# 中用于 jquery 的 JSON 模式
- php - 如何用扩展名重命名下载的文件
- ocaml - Ocaml:未绑定的模块数组
- azure - Azure 应用服务未连接
- git - 只读 TFVC(Team Foundation 版本控制)
- sorting - 如果在其中一列中发现出现,则从两列文件中删除行
- python - AttributeError: 模块 'tensorflow' 没有属性 'python' --> 遵循 tensorflow 调试器教程
- powershell - Powershell 从文件名中删除前导零
- android-studio - 如何更改导航栏图标的颜色?(安卓工作室)
- php - 在 php.ini 中将 session.use_cookies 设置为 0