MacOS PDF 转图片小探

前几天有个朋友咨询我这个“修电脑的”:如果要把一个内部 PDF 文件发给别人,如何脱敏?当然别人也是他的朋友,只是给他参阅下,并不是要发到公网上传播。最简单的办法就是用 PDF 编辑软件把敏感部分都擦除掉啦。然而他用的是 MacOS,这类编辑软件基本都是收费的,他又不想为此特意花那个钱(好像找我帮忙没有成本一样╮(╯_╰)╭)。在远在未来的一顿饭的压迫下,我只能去尝试下免费的方法了。

Preview

MacOS 的 Preview 是一个很强大的 App,可以查看图片,甚至做一些简单的图片编辑工作。令人惊喜的,它也可以查看 PDF 并且做一些涂鸦。

比如有这样一个 PDF 文件:


MacOS PDF 转图片小探


如果要把右侧的 Adobe 标遮掉,可以打开 Show Mockup Toolbar,使用 Draw 工具进行涂抹。


MacOS PDF 转图片小探


但是这种方法有一个弊端,就是 PDF 被再次打开后,涂鸦可以被删除。

一个办法就是把 PDF 文件转为图片。从 Preview 的菜单 File->Export,选择格式为 JPEG 即可。但这个办法只能将 PDF 的第一页输出为图片,无法满足我们的要求。

Automator

无奈,去网上搜索了一番。无意间发现可以利用 MacOS 的 Automator 来达到批量转换 PDF 所有页到图片。经过对 Automator、Apple Script 一番研究,较为满意实现了以下目标:

  1. 将 PDF 所有页都输出为图片
  2. 在 Finder 中集成右键菜单以便随时、快速地转换
  3. 这些图片可以输出在与 PDF 文件相同的文件夹下


MacOS PDF 转图片小探


首先创建一个 Quick Action 类型的 Document,然后配置其输入为 Finder 中的 PDF 文件。这样只有 PDF 文件,会在右键的 Quick Action 菜单有此服务了。接下来每个步骤介绍如下:


  1. Set Value of Variable:将选中的文件作为对象赋值到变量 file 上
  2. Run AppleScript:获取选中文件所在文件夹
  3. Set Value of Variable:将该文件夹设置到变量 filefolder 上
  4. Get Value of Variable:将变量 file 上的文件作为下个步骤的输入。如果没有这一步,则 filefolder 会作为下个步骤的输入了。
  5. Render PDF Pages as Images:将 PDF 文件的每一页输出为图片。这一步就是我们要的批量处理。
  6. Move Finder Items:将上述图片文件移动到 filefolder 变量所指向的文件夹中,也就是跟源文件相同的目录中。因为上一步默认会把图片存在 /private/var/folders 的某个目录下。

然后将此 Document 保存,名称可以取为 PDF to Images。我们可以看看具体使用办法:


MacOS PDF 转图片小探


但是这个办法还是有一个问题没法解决——有些 PDF 文件设置了导出密码。必须把密码清除了,才能使用 Automator 来处理。如果不知道密码,那就行不通了。

截图

那还有其他什么办法吗?截图!当然,不是说手动一张一张去截屏,而是有一个 App 就叫“截图(Jietu)”。它支持滚动截图,而且是免费的。但是这个滚动截图功能在某些情况会漏掉或重复截屏。也可能因为这样,所以最新的 2.2.2 版本也没有了这个功能。不过还好我有 2.2.1 版本的。用 Preview 打开 PDF 文件后,利用滚动截屏功能顺利地截取到了所有页面的一个长图。没有遗漏或重复,当然也有可能是 PDF 文件页数比较少。好几十页乃至上百页的还没有测试过。

到这里,总算可以交差了。然而事情并没有结束。当我尝试对十几页的长图片用 Preview 预览,放大时竟然无法正常显示内容(可能由于图片太大的缘故)。于是我又脑洞地把这张长图转为了 PDF。这样的 PDF 只有一页,这一页的中间就是一个细长条的图片,必须放大后才能看清。嗯,把这样的 PDF 发出去,自然也增加了阅读成本,这大概也可以算是脱敏的一部分吧:)

希望朋友不要忘记这一顿饭。


分享到:


相關文章: