使用 javascript 进行操作的自定义菜单 (Acrobat X)

Custom menu (Acrobat X) for action using javascript

我在 Acrobat Pro X 中使用 动作向导 创建了一个动作。

A​​ JavaScript 在动作开始时是 运行。

这个 Javascript 做什么? 假设在打开的 pdf 中有 100 页,这个 javascript 将所有页面提取为单独的页面并将其重命名为用户定义的样式。

例如Hello_001.pdf,Hello_002.pdf,Hello_003.pdf,Hello_004.pdf,...等等,

我想要一个 自定义菜单 以执行此操作为目标。

在我看来,您可以在您提供的 link 中找到答案。重要的是您的 script/function 工作正常。所以之前在js控制台测试一下。但是这里有一个示例,您可以在其中用您的脚本替换脚本。此致,莱因哈德

编辑:(25.11.) 以为可以自己使用它,但后来我想让它排序。所以我在提取文件名中引入了前导零 - >功能改变了。

//Save this in the ....\Acrobat\Javascripts\  program or user directory 
//  as whatever.js to load as Add-In

//-> create a submenu as first position under "Edit"
app.addSubMenu({ cName: "Specials", cParent: "Edit", nPos: 0 }); 

//-> now create a Menuitem for the function you will execute
app.addMenuItem({ cName: "Extract all Pages to file", cParent: "Specials", cExec: "extractAll()"}); 

//-> state your function (extract all Pages with leading zeros)
extractAll = app.trustedFunction(function (){
var re = /.*\/|\.pdf$/ig;
    var filename = this.path.replace(re,"");
    var lastPage = this.numPages;
    var lz = Math.pow(10, (lastPage).toString().length); //calc full decimals (10,100,..)
    app.beginPriv(); // Explicitly raise privilege
    for ( var i = 0;  i < lastPage; i++ ) {
        var zPgNo = (lz + i+1).toString().slice(1); //calc actual, cut leading 1 = zerofilled PgNo
        this.extractPages({
            nStart: i,
            nEnd: lastPage -1,
            cPath : filename + "_page_" + zPgNo + ".pdf"
        });
    };
    app.endPriv();
    app.alert("Done!");
})

您无法从菜单项触发 运行 的操作。但是,您可以创建一个应用程序级别 JavaScript,其中包含一个函数来执行您想要的操作,然后从 Acrobat 动作或自定义菜单项或两者调用该函数。 ReFran 的回答显示了如何添加自定义菜单项。