TagPDF

你说的框是什么框——理解 PDF 中的五种页面边界

最近工作中,我经常遇到需要裁剪 PDF 页面的情况。例如,收到的扫描版 PDF 文件不是标准的 A4 尺寸,而是有些多余的白边需要裁掉。

过去偶尔需要裁剪 PDF 时,我一般会通过 macOS 自带的预览 app 实现:用标记工具栏中的「矩形选择」工具选中要保留的范围,然后按 ⌘K 就完成了裁剪。(PDF Expert 也有类似功能。)因为步骤简单,我也没有多做研究。

这周,因为裁剪 PDF 时需要更精确地控制尺寸,我第一次尝试用 Acrobat 完成裁剪操作。结果,第一步就被卡住了:Acrobat 的裁剪界面(「设置页面框」对话框)选项繁多,甚至还要求选择将裁剪范围应用到哪个「框」上:裁剪框、作品框、裁切框还是出血框?

放过我……
放过我……

拜托,我就想裁个文件,你搞这么多框框是几个意思?

抱怨归抱怨,为了饭碗,还是有必要花时间研究一下。Acrobat 在使用手册中描述了「设置页面框」功能,并介绍了几种边框的区别,但仍然不够详尽。因此,还是有必要直接翻翻 PDF 格式的「辞海」——Adobe 以 PDF 格式标准为基础、补充自家实现细节的《PDF

用 Shell 脚本制作签字页

在我目前的工作中,一项常见但繁琐的任务就是制作文件的「签字页」。具体而言,这项任务包含如下步骤:

  1. 将 Word 格式的交易文件导出为 PDF 格式;
  2. 逐页提取 PDF 版中的签字页部分;
  3. 将单页签字页按照类似于 合同名称_SigPage_01_签署方名称.pdf 的格式重命名。
「签字页」
「签字页」

这些步骤本身都毫无难度,但逐个操作下来仍然麻烦且易错。特别是对于那些文件数量和签署方数量都动辄十几二十个的大型交易,制作签字页对体力、眼力和脑力都是挑战。

显然,这就给通过自动化来「偷懒」创造了很强的动机。

上述步骤中,第 1 步是最容易通过工具来省事的:有大把的图形界面软件(例如 Acrobat、WPS 等)可以批量将 Word 文件转换为 PDF,只要一股脑地选中需要转换的原始文件,等待转换完成即可。如果偏好使用命令行,还可以使用 docx2pdf(Windows 和 macOS 通用)、DocToOfficeToPDF(只适用于 Windows)等工具进一步方便批量操作。

但之后的两个步骤——分割页面和重命名——才是最耗费精力、却又不太可能找到现成的工具的。

之前,我虽然一直有 DIY 一个自动化方案的想法,但总是因为时间有限和自己懒等原因未能实现。但在今天又一次被制作签字页的任务羞辱之后,我终于决心长痛不如短痛,花了一个下午把这个想法付诸实践,而成果就是下面这段(简陋难看的)shell 脚本 sigpgs.sh:…

PDF 复制中的文字重复问题

前两天,编辑 @⽂⼑漢三 在 Slack 上发给我一个 PDF 文件,问我知不知道为什么从里面复制出的中文会出现「重字」现象。他还提到,这个问题只在用系统自带的预览 app 打开时会出现,用其他 PDF 阅读器复制文字是正常的。

用预览 app 复制出的「结巴」文字

文刀拿这个问题来问我,恐怕是因为我之前写过一篇解释 PDF 格式的文章,觉得我大概会知道答案。不过他其实高估了我的知识水平——我刚开始也不知道这是怎么回事。不过,经过一番搜索,我最终初步搞清楚了问题成因。因为这个问题涉及到一些很有意思的细节,这里把探索的过程写出来,供有类似疑问的朋友参考。


出现问题的 PDF 文档是由一篇少数派文章导出而得的。首先尝试复现问题:用预览 app 打开并随手复制一段,确实出现了很多重复的文字,看起来就像是「结巴」了一样,有一种莫名的喜感。换用 PDF Expert 打开再尝试复制,则没有这样的问题。

虽然不知道问题的具体成因,但根据经验,文字复制中的故障往往与编码有关,而 PDF 格式正是编码问题的大户。

我在之前的文章中提到,PDF 格式是「不识字」的。在显示文字时,阅读器只是机械地根据 PDF 语句的指令,将字体资源中特定码位的字形绘制在坐标指定的位置,而并不关心自己画出来的到底是什么字。只有在进行复制、搜索等操作时,PDF 才会根据内嵌的 CMap,将内部字体的编码和 Unicode 编码对应起来。因此,如果 CMap …

数字世界中的纸张——理解 PDF

引言

PDF 是我们打交道最多的文件格式之一。提到这个格式,即使是对技术并不熟悉的用户,也能说出「通用性好」「格式不会乱变」这些优点。但同时,PDF 也是让我们感到困惑最多的格式之一。与 Word 文档等其他常见办公软件格式相比,PDF 似乎有着太多的「怪癖」,例如复制文字困难、几乎没法编辑等等。PDF 软件数量繁多、质量良莠不齐的现状,也进一步让很多用户无法正确理解和使用 PDF。

然而,这些问题大多并不是 PDF 格式的「缺陷」,而是因为我们在观念上把 PDF 当成了和其他办公文档格式相近的东西,并因此期待 PDF 也具有和后者相似的功能和特征。

事实并非如此。尽管 PDF 格式和 Word 格式在实际用途上有诸多重叠之处,但那只是表面现象。从技术角度看,两种格式之间的差异要远远大于 Word 文档和网页的差异,甚至也大于 Word 文档和 Excel 表格的差异。

但这并不意味着 PDF 就是一种难以理解的格式。恰恰相反,对大多数用户来说,PDF 可能是他们接触到的格式中最「接地气」、与现实生活最接近的。因为,PDF 与其说是一种数字文档,不如说是实体文档在数字世界中的倒影。对 PDF 的操作,很大程度上可以看成对真实纸张的操作,只是操作环境从物理世界换到了数字世界而已。PDF 的创建就是一种虚拟的打印