3

我是 AppleScript 的新手,但我正在尝试创建一个脚本,该脚本将遍历文件夹中的所有 PDF,将页面提取到单独的文件中。我的计划是结合使用 Automator 和 AppleScript。

到目前为止,我的 AppleScript 是:

tell application "Adobe Acrobat Pro"
    open theFile
    set numPages to (count active doc each page)
    --execute the extraction here
end tell

Acrobat Pro 中的命令位于 下Options > Extract Pages...,我可以在其中指定页面范围并提取到单独的文件。但是,我似乎找不到使用 AppleScript 中的 Acrobat Pro Dictionary 执行此操作的方法。

有一个execute执行菜单项的命令,但我似乎无法让它工作(我也不确定要使用的语法;即execute "Options:Extract Pages..."?)。对此有什么帮助吗?

4

2 回答 2

3

我认为您可以完全使用 Automator 完成此操作,而无需 AppleScript 或 Adob​​e 软件。“PDF 到图像”操作将多页 .PDF 文件拆分为单独的 .PDF 文件,每页一个:

在此处输入图像描述

于 2013-09-04T20:53:52.083 回答
1

您可以使用 Adob​​e Acrobat Pro。这是使用 Adob​​e Acrobat Pro XI 的示例。它使用 Acrobat 的“动作”(以前称为“批处理”)和自定义 JavaScript。

Adobe Acrobat Pro - 编辑动作

您可以创建一个新操作,提示用户选择要处理的 pdf 文件文件夹。然后,您可以添加搜索 pdf 文件名的 JavaScript 执行和extractPages函数以从 PDF 中提取所有页面

Adobe Acrobat Pro XI - 编辑动作

Adobe Acrobat Pro - JavaScript

以下会将所有页面提取到单独的 PDF 中。它在每个图纸编号的末尾附加一个后缀。它根据链接中描述的方法用零填充工作表编号,该方法基本上在前面添加了一堆零,然后根据您通常拥有的工作表数量仅切出字符串的最后一位数字。

/* Extract Pages to Folder */

var re = /.*\/|\.pdf$/ig;
var filename = this.path.replace(re,"");

{
    for ( var i = 0;  i < this.numPages; i++ )
    this.extractPages
     ({
        nStart: i,
        nEnd: i,
        cPath : filename + "_s" + ("000000" + (i+1)).slice (-3) + ".pdf"
    });
};

参考

JavaScript for Acrobat API 参考 > JavaScript API > 文档 > 文档方法 > extractPages

提取页面以分隔pdf(循环有问题吗?)

如何使用 JavaScript 创建 Zerofilled 值?

如何在JavaScript中输出带有前导零的整数[重复]

于 2015-05-28T17:52:09.280 回答