它省掉的那两步
想把一张 iPhone 照片变成文档,常见的建议是先转成 JPG,再把 JPG 转成 PDF。这条路能走通, 代价是一个你并不想要的中间文件夹、对一张已经压缩过的照片再来一轮有损压缩,以及双倍的 等待时间。
在这里,.heic 直接进去。和 HEIC 转换页面同一个解码器照常运行,交出像素,这些像素被写成 一页。一步完成,没有中间文件。
为什么 iPhone 照片在别处那么麻烦
把 iPhone 照片转 PDF 之所以在别处那么费劲,原因只有一个。从 iOS 11 开始,iPhone 默认把 照片存成 .heic。里面装的是一个 HEVC 帧内帧,而 HEVC 带着 专利授权,所以 Chrome 和火狐从来没有内置过它的解码器。结果就是这样一个格式:在手机上 再正常不过,在网页上完全读不了 —— 这也是为什么那么多转换工具会先让你去换格式。
这里用的解码器是编译成 WebAssembly 的 libheif,第一次使用时下载 1.4 MB,之后被缓存。 它跑在 worker 线程上,所以二十张照片的文件夹是一条正常走的进度条,而不是一个卡死的 标签页。它也能正确处理苹果给大图用的瓦片布局,而简单的解码器在这里往往会出错。
页面尺寸、页边距和打印
「跟随图片画幅」让每一页都是照片本身的画幅,文件小,适合屏幕上看的一切。A4 或 Letter 把每张照片居中放在标准纸张上,遇到横图自动转成横向 —— 当文档要送去打印,或者交给一个 只认纸张尺寸的办公流程时,你要的是这个。
这种情况下记得加上页边距。大多数打印机够不到纸张边缘,而一份拍下来的文件被切掉了边, 比留一圈白边糟得多。全部过程都在你的浏览器里完成,任何一张照片都不会被送到服务器。