跳到主要内容
PulsarKit

把一堆照片按正确顺序合成一个PDF

一文件夹拍下来的收据或书页,要分两个独立的步骤才能变成能用的文档:先合成,再把顺序排对。

作者:PulsarKit · ·

左边是四张拍下来的收据,角度各不相同,其中一张侧躺着,按拍摄顺序编号为3、1、4、2;右边是一个PDF,同样的四页已经摆正,并按1到4的顺序排列

照片本身已经决定了画质,别在转换时把它弄丢

保存为JPG的照片本来就是压缩过的图片,PDF页面完全可以原样装下这些压缩数据,中途不需要解码再重新压缩。JPG转PDF就是这样转换的,所以生成的文档大小和原始照片加起来差不多。以后从做好的PDF里再取出一张图片,它和你最初的照片逐字节完全相同。合成过程中没有悄悄发生的画质损失。人们很容易以为这种损失不可避免,其实并非如此。

文件名很少和页面应有的顺序一致

手机拍的照片通常按时间戳命名,这和文档阅读时需要的逻辑顺序毫无关系。如果扫描过程中页面顺序乱了,或者没按顺序重拍,合同的第四页完全可能比第一页先拍。生成PDF和排对顺序是两项不同的工作:先把照片合成页面,再把这些页面拖成读者需要的顺序,和文件碰巧以什么顺序进来无关。

修一页,不该意味着重做整份文档

某一页结果是横着的、不小心重复了,或者只是放错了位置,都不需要从头重新合成。旋转单独一页、删掉重复页、把一页移到别的位置,在整理PDF页面里都是针对已做好文档的独立修改。合理的做法是先把所有照片合成,再修那几页需要修的,而不是在合并之前就力求每张照片都完美无缺。

页面尺寸的选择,对打印比对屏幕阅读更重要

让每一页都采用自己那张照片的实际尺寸,每张图片都能保持原始比例,不裁剪也不加边;如果文档只会在屏幕上阅读,这是正确的选择。如果文档要送到打印机上打印,就要把每一页统一成A4或Letter这样的固定纸张尺寸,因为家用打印机通常无法打印到纸张边缘,会意外裁掉无边距的页面。选哪一种取决于文档接下来去哪里,而不是哪个选项抽象地听起来更正确。既要在屏幕上看又要打印的文档,通常用固定纸张尺寸更好,因为边距在屏幕上没有任何代价。

做好的PDF仍然不能搜索,那是另一个步骤

把拍下的页面合成PDF并排好顺序,得到的是一份真正可以分享的文档,但它仍然是一组图片。所有页面下面都没有文字,所以文件里的任何内容暂时都无法选中、复制,也搜不到。要做到这一点,需要在做好的文档上再运行PDF文字识别,它会在页面后面加一层看不见、位置精确的文字层,不改变页面的外观。这是合成和排序之外的另一个步骤,不会在过程中自动完成。

在手机上分步操作

整个流程在拍照的那部手机上就能完成。打开JPG转PDF,添加图片,一次最多200张;页面在浏览器里读取它们,所以不会上传任何内容,页面加载完成后,断网也能继续用。手机写进每张照片的旋转标记会自动生效,所以侧着拍的收据出来是正的。生成之前,把缩略图拖成阅读顺序,因为决定页面的是这个顺序,而不是文件名。按文档的去向选页面尺寸:在屏幕上阅读的文件选“适配”,要打印的文件选A4或Letter,边距约10 mm。下载结果,然后在整理PDF页面里打开,修好还需要修的地方:可以用手指移动页面,每次旋转四分之一圈,复制或删除;如果改乱了,“恢复原始顺序”按钮会把每一页放回原位;保存文件之前,什么都不会写入。手机上的原文件不会有任何改动;修好的文档是一个新文件。保持合并开关打开,除非你想让每张照片各自成为一个单页PDF,那样它们会一起打包成一个ZIP。

数字说明了什么:为什么PDF和照片一样大

PDF是容器,不是压缩工具。转换器把每个JPEG数据流原样复制进文档,所以十张每张3 MB的照片,生成的文档约30 MB,合成大约只要两秒,因为进来时什么都不用解码。对存档来说这是正确的结果,对邮件附件或上传表单来说却常常不合适。有两种办法让它变小,转换前后各一种。转换前,调整图片大小可以把4000×3000像素的手机照片缩小到长边约1600像素,在屏幕上看收据或一页文字仍然绰绰有余,像素数大约减少到原来的六分之一。转换后,PDF压缩按选定的分辨率和质量,重新编码做好的文档里的图片,默认级别是150 DPI、质量65,页面顺序和文字都不动。选哪一边,取决于是否值得保留一份全分辨率的副本:先缩小,文档里就从来没有完整的照片;事后压缩则两份都留着,大的PDF用来存档,小的用来发送。一批最多200张照片、500 MB;更多的照片分批转换,再用PDF合并拼起来,它会保留你的顺序,总共最多500 MB。

本文用到的工具

继续阅读