如何检查多个PDF文件的注释/注释?

时间:2016-01-25 20:34:10

标签: pdf annotations

问题:我经常接收PDF报告并注释(突出显示)其中一些。我养成了将带注释的PDF与未注释的PDF一起保存的坏习惯。我现在在相同的文件夹中有数百个PDF文件,有些是注释的,有些则没有。有没有办法检查每个PDF文件的注释,只将带注释的文件复制到新文件夹?

非常感谢!

我在Win 7 64bit上,我安装了Adobe Acrobat XI,我可以用Python和Javascript做一些初学者编码

请忽略以下建议,因为答案已经解决了问题。

编辑:根据Wyss先生的建议,我为Acrobat的Javascript控制台创建了以下代码,以便在开头只运行一次

counter = 1;

// Open a new report
var rep = new Report();
rep.size = 1.2;
rep.color = color.blue;
rep.writeText("Files WITH Annotations");

然后此代码应该应用于所有PDF:

this.syncAnnotScan();
annots = this.getAnnots();
path = this.path;
if (annots) {
    rep.color = color.black;
    rep.writeText(" ");
    rep.writeText(counter.toString()+"- "+path);
    rep.writeText(" ");
    if (counter% 20 == 0) {
        rep.breakPage();
    }
    counter++;
}

最后,最后一个代码只能运行一次

//Now open the report
var docRep = rep.open("files_with_annots.pdf");

此解决方案存在两个问题:

1.“动作向导”似乎始终对每个PDF重新应用相同的代码(这意味着“计数器”变量,例如,没有意义;它将始终be = 1.但更重要的是,当中间代码在不同的PDF上运行时,var“rep”将被取消分配。  2.如何只在开始或结束时只运行一次运行的代码,而不是每次运行每个PDF(就像默认情况下那样)?

再次感谢你的帮助!

2 个答案:

答案 0 :(得分:0)

使用动作向导可以将动作放在一起。

确定文档中是否有注释的功能将在Acrobat JavaScript中完成。粗略地说,核心功能看起来像这样:

this.syncAnnotScan() ; // updates all annots
var myAnnots = this.getAnnots() ;
if (myAnnots != null) {
// do something if there are annots
} else {
// do something if there are no annots
}

这应该会让你到那儿。

我不是完全正面的,但我认为还有预检检查,它会告诉您文档中是否有注释。如果是这样,您将创建一个Preflight Droplet,它将整理带注释和未注释的文档。

答案 1 :(得分:0)

先生。 Wyss是对的,这是一个循序渐进的指南:

  1. 在Acrobat XI Pro中,转到'工具'右侧的小组
  2. 点击'操作向导'选项卡(您必须首先使其可见)
  3. 点击'创建新动作...',选择更多工具' > '执行Javascript'并将其添加到右侧窗格>点击'执行Javascript' > '指定设置' (取消选中'提示用户'如果需要)>粘贴此代码:
  4. this.syncAnnotScan();
    var annots = this.getAnnots();
    var fname = this.documentFileName;
    fname = fname.replace(",", ";");
    var errormsg = "";
    if (annots) {
        try {
            this.saveAs({
                cPath: "/c/folder/"+fname,
                bPromptToOverwrite: false //make this 'true' if you want to be prompted on overwrites
            });
        } catch(e) {
            for (var i in e)
            {errormsg+= (i + ": " + e[i]+ " / ");}
            app.alert({
                cMsg: "Error! Unable to save the file under this name ('"+fname+"'- possibly an unicode string?) See this: "+errormsg,
                cTitle: "Damn you Acrobat"
            });
        }
    ;}
    annots = 0;
    

    保存并运行它!所有带注释的PDF都将保存到' c:\ folder' (但仅当此文件夹已存在时!)

    请务必在'编辑'中启用第一个Javascript。 > '首...' > '的Javascript' > '启用Acrobat Javascript'。

    非常重要:Acrobat的JS有一个错误,不允许在其名称中用逗号(",")保存文档(例如,"会议与供应商,5月11日.pdf" - 这将得到一个错误)。因此,我在上面的代码中替换所有"," for";"。