使用技巧2026-10-02约 2 分钟阅读

手机照片转 PDF:文件为什么特别大,竖拍的页面为什么躺着

“图片转 PDF”把每张照片按原始像素放进单独一页,3 张 3.2 MB 的手机尺寸 JPEG 转出来是 41.5 MB 的 PDF,带竖拍标记的照片还会落在横向页面上。转换前先缩小照片,躺着的页面事后用旋转摆正。

PDF123 · 更新于 2026-10-02

图片转 PDF把 JPEG、PNG、GIF 或 BMP 文件合成一个 PDF,一张图一页,页序就是上传顺序。它不会缩小任何东西,也不读取手机写在竖拍照片里的旋转标记。一次测试里,3 张 3.2 MB 的 JPEG 转出来是 41.5 MB 的 PDF,带竖拍标记的照片落在了横向页面上。上传前先缩小照片,躺着的页面事后用旋转摆正。

完整示例

输入是 3 张 4032 × 3024 像素的 JPEG,每张约 3.2 MB(合计 9.7 MB),相当于手机相机一帧的像素尺寸。它们是带细微噪点的合成图,比多数真实照片更难压缩;下面的大小都是 2026-10-04 在用当前源码构建的本地服务器上跑出的一次结果,不是承诺。请求如下:

curl -s -o IMG_0001.pdf \
  -F fileInput=@IMG_0001.jpg -F fileInput=@IMG_0002.jpg -F fileInput=@IMG_0003.jpg \
  https://pdf123.xyz/api/v1/convert/img/pdf
步骤 结果
3 张 JPEG,4032 × 3024 px 合计 9.7 MB
图片转 PDF 3 页,41.5 MB,每页 4032 × 3024 pt
对这个 PDF 做压缩 39.9 MB,约小 4%
先把同样 3 张照片长边缩到 1600 px 合计 1.7 MB
对缩小后的照片做图片转 PDF 3 页,6.2 MB,每页 1600 × 1200 pt
对这个 PDF 做压缩 6.2 MB,没有变小

输出文件以第一个上传的文件命名,所以上面下载到的是 IMG_0001.pdf。

10 MB 的照片为什么变成 41 MB

JPEG 把照片存成有损压缩的块。图片转 PDF 不会把这些字节原样放进 PDF,而是先解码,转成 8 位 RGB,再用无损的 Flate 压缩存放原始像素。一帧 4032 × 3024 的画面是 3658 万字节的 RGB(4032 × 3024 × 3)。Flate 把它压到每页约 13.8 MB,仍然是原 JPEG 的四倍多。同样的 3 张照片各放 3 份,共 9 页,PDF 就有 124.6 MB。

这也解释了压缩那两行为什么几乎没动。压缩做的是重压缩数据流和打包对象,不会降低图片分辨率,也不会重新编码图片;像素本来就是 Flate 压缩过的,剩下可挤的很少(原理)。想要更小的文件,只能在生成 PDF 之前减少像素。

还有第二个代价。每页的尺寸取自图片本身,1 像素对应 1 点,所以 4032 像素宽的照片会生成 56 英寸宽的页面。阅读器会按窗口缩放,打印机会按纸张缩放,但页面本身不是 A4 或 Letter。表单上没有纸张尺寸、适应方式、颜色类型或自动旋转的选项,服务器也不读取接口字段 fitOption、colorType 和 autoRotate。

先缩小,再转换

上传之前先缩小照片。Mac 上 sips -Z 1600 IMG_0001.jpg --out small1.jpg 即可;任何系统上都可以用 ImageMagick:

magick IMG_0001.jpg -resize 1600x1600 -quality 85 small1.jpg

两条命令都把 4032 × 3024 的照片变成 1600 × 1200。这次 3 张 JPEG 从 9.7 MB 降到 1.7 MB,三页 PDF 从 41.5 MB 降到 6.2 MB。放在 Letter 纸上,1600 像素铺满 11 英寸约合 145 dpi,看拍下来的表格够用,看小字就偏粗。缩到多大,要看你必须读清的最小字,别只盯着文件大小目标。

大小要管两次,因为后面的工具也有上限。一次请求体最大 100 MiB。上面 124.6 MB 的 PDF 发给压缩时被拒绝,返回 413(payload_too_large),绕过办法见大文件上传被拒。

躺着的页面

不少手机把竖拍的照片按横向像素存储,再加一个 EXIF 方向标记,让查看器去旋转它。相册通常会遵守这个标记,图片转 PDF 不读取它:一张方向值为 6(顺时针转 90°)的 1600 × 1200 JPEG,生成的是 1600 × 1200 的横向页面。

修正用旋转:填页码(这里是 1)和角度 90。结果里那一页设置了 /Rotate 90,阅读器会把它摆正。方向值为 8 的照片用 270,方向值为 3(倒置)的用 180;这里只测了方向值 6。旋转写入的是页面的绝对角度,不是在当前角度上累加,也不会重新编码图片。不想一页一页改的话,转换之前先在相册里把照片转正,另存一份。

这个工具不会处理的情况

  • HEIC 和其他格式。 页面接受 .png、.jpg、.jpeg、.gif、.bmp。一个真实的 HEIC 文件返回 400,unsupported_file_type;请先导出为 JPEG。
  • 不是图片的文件。 把 PDF 传给这个端点,返回同样的 400,消息是 “The file is not a supported image.”
  • SVG。 SVG 文件同样返回 400。
  • 可搜索的文字。 拍下来的文档页,文字仍然只是像素。OCR返回的是 Markdown 文本,不会给这个 PDF 加文字层(原理)。
  • 透明度。 图片会转成 RGB,透明通道被丢弃。

发出去之前检查

打开 PDF,对照照片按顺序数页数。页序就是上传顺序;测试里先传竖版 PNG、再传横版 PNG,结果第一页就是竖版页。最后看一眼文件大小,再附到邮件里。

打开工具
在浏览器里完成处理,不加水印,文件处理完就会删除。
打开工具