如何在 OS X 中仅自动打印 PDF 页面的一部分?

slh*_*hck 5 pdf printing applescript automator macos

我经常需要裁剪 PDF 的上半部分(它是运输标签),并且只打印在 A4 纸上,而不是整个标签。

我可以使用 Adob​​e Acrobat Pro 轻松完成此操作,方法是打开文件,然后转到Edit Text & Images,然后手动删除我不需要的所有内容,最后通过 OS X 的系统对话框进行打印。但是,当我有多个文件时,这有点麻烦。

我可以使用 Automator 或任何命令行脚本在 OS X 上以某种方式自动执行此操作吗?

Kur*_*fle 8

如果只是偶尔在 OS X 上“只打印上半部分”,你实际上不需要安装任何东西。

  1. 在 Preview.app 中打开 PDF(这可能是您系统上的默认 PDF 查看器)。

  2. 从应用程序的菜单中,确保“工具 -> 矩形选择”处于活动状态。

  3. 使用鼠标指针选择要打印(或导出为 PDF)的那一半(或页面的其他部分)。

    屏幕截图显示了带有选择的原始文件

  4. 从应用程序菜单中,选择“文件 -> 从剪贴板新建”(或使用适当的键盘快捷键)。

  5. 一个名为“未知”的新窗口打开。它包含您的矩形选择。打印或导出为 PDF。

  6. 打印时,您可以根据需要“缩放”“缩放以适合”和/或“自动旋转”

    打印对话框仅显示所选零件的预览

  7. 如果您不想要,则无需保存“未知”文件。


您可能已经注意到,我不是用 PDF 演示了我的方法。因为此方法适用于 Preview.app 可以打开和显示的任何文件。当然,它也适用于 PDF。我知道您已经要求使用某种自动化方法来执行此操作,但事实并非如此。但它避免了 Adob​​e Acrobat Pro 的重炮,这在仅偶尔手动执行时是不需要的。


slh*_*hck 6

以下是步骤:

  • 安装Homebrew。确保遵循命令行上的所有说明。

  • 使用brew install imagemagick.

  • 打开Automator.app,然后创建一个新的Print Plugin

  • Run Shell Script从左侧窗格拖到右侧。

  • 选择传递输入:作为参数并粘贴以下代码:

    # Crop off the top half of a PDF and print it
    CROP_PERCENT=50                 # top percent to keep
    DENSITY=600                     # DPI density for PDF reading
    OUTPUT_SIZE="28x21cm"           # Output page size, e.g. 28x21cm is A4
    TMP_OUTPUT="/tmp/cropped.png"   # Output tmp file
    
    convert -density "$DENSITY" "$1" -crop 100x${CROP_PERCENT}%+0+0 -gravity North -extent "$OUTPUT_SIZE" "$TMP_OUTPUT"
    
    echo "$TMP_OUTPUT"
    
    Run Code Online (Sandbox Code Playgroud)
  • Print Finder Items从左侧窗格拖到右侧。

它应该是这样的:

以您想要的任何名称保存它,例如Print Top Half,现在您可以从任何打印对话框访问它: