【问题标题】:How to automate extracting pages from a PDF using AppleScript and Acrobat Pro?如何使用 AppleScript 和 Acrobat Pro 自动从 PDF 中提取页面?
【发布时间】:2013-09-08 09:15:48
【问题描述】:

我是 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..."?)。有什么帮助吗?

【问题讨论】:

    标签: pdf applescript acrobat automator


    【解决方案1】:

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

    【讨论】:

    • 这绝对是一个不错的解决方案,但我需要通过 Acrobat Pro/Distiller 的原因是因为这是为了发布,我必须遵循 Distiller 的特定 .options 配置。通过以这种方式提取页面,OS X 原生 Quartz 框架会创建一个新的 PDF。
    • 在这种情况下,我认为我无法提供具体的答案,因为我无法使用 Acrobat Pro。
    • 使用 AppleScript UI 脚本可以做到这一点的一种可能方式。您可以使用 Automator 的记录功能来记录执行 Acrobat 提取页面工作流程所需的 UI 交互步骤。然后,您可以从字面上选择并复制 automator 中记录的步骤,并将它们粘贴到新的 Applescript 编辑器窗口中。这将为您提供可能有效也可能无效的applescript。您可能想要编辑脚本,但至少它应该有助于了解以编程方式执行此操作所需的内容。
    【解决方案2】:

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

    Adobe Acrobat Pro - 编辑动作

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

    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 Reference > JavaScript API > Doc > Doc methods > extractPages

    Extract pages to separate pdf's (something wrong with loop?)

    How can I create a Zerofilled value using JavaScript?

    How to output integers with leading zeros in JavaScript [duplicate]

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 1970-01-01
      • 2013-10-03
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多