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

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

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

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

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

答案1

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

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

  2. 在应用程序菜单中,确保‘工具 -> 矩形选择’活跃。

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

    屏幕截图显示了包含选择的原始文件

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

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

  6. 打印时,您可以'规模'“规模适配”和/或'自动旋转'随你便吧。

    打印对话框仅显示选定部分的预览

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


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

答案2

步骤如下:

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

  • 使用 安装 ImageMagick brew install imagemagick

  • 打开Automator.app,然后创建一个新的打印插件

  • 运行 Shell 脚本从左侧窗格到右侧窗格。

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

    # 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"
    
  • 打印查找器项目从左侧窗格到右侧窗格。

它看起来应该是这样的:

以您想要的任何名称保存,例如打印上半部分,现在您可以从任何打印对话框访问它:

答案3

其实你不必担心内容。你只需要裁剪页面。

另一种可能性是创建与 A5 横向相对应的自定义纸张格式(可能是包装标签所涉及内容)。

您可以在打印机驱动程序对话框中执行此操作,只需忽略 Acrobat 的投诉,您将离开 Acrobat 打印对话框并最终进入打印机对话框。在那里,您可以创建新格式并保存;或者,如果您已经有了它,请选择它。确认,然后您将返回 Acrobat 打印对话框。在那里停用自动旋转和居中,并且这个新的页面大小将处于活动状态。在小预览缩略图中验证它是否正确。如果正确,您可以打印。

Acrobat 打印对话框中的设置是持久的,这意味着下次使用对话框时它们会被记住。

当然,您现在可以使用操作向导来组装操作。

您可能还查看 printParams(Acrobat)JavaScript 对象,看它是否足以满足您的需求;如果是这样,您可以创建一个带有菜单项的应用程序级 JavaScript,并在需要时运行它。

最后,您还可以使用 AppleScript 和系统事件来完全控制 Acrobat 打印对话框和打印机的打印对话框。然后可以将此 Applescript 制作成 Droplet。

所以,有很多选择,所有选择都可以通过机载方式实现。

相关内容