首页 > 解决方案 > 在 Adob​​e 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

注意:不同的页面可能会在不同的时间处理输出,这取决于我在运行脚本之前最近单击了哪些页面。

任何指导或帮助将不胜感激。谢谢你的时间。

标签: pdfacrobatadobe-javascript

解决方案


所以。我仍然不完全确定问题出在哪里,但我已经找到了一种让 acrobat 大部分时间都能正常工作的方法。

在单击“使所有页面可编辑”选项之前,一直缩小直到可以看到文档中的所有页面。无论出于何种原因,当我这样做时,它似乎会刷新一些有关设置的内容,并再次使所有页面都可编辑。当我打开一个完全不同的 pdf 并按下“使所有页面可编辑”时,即使没有缩小,这似乎也有效。


推荐阅读