我有一批由扫描页面组成的PDF(约80,000个文件)。图像层的像素大小与300dpi一致,但似乎设置为72dpi。因此,页面大小显示为46x35英寸。我需要调整这些文件,使它们注册为8.5 x 11,或者它们的自然大小,我需要能够编写流程脚本,这样我就可以将其留在80,000个文档上(每个文档2-5页)。
我想避免重新采样图像层,因为这可能会增加损失,并显着减慢过程。我试过了:
convert -density 300x300 input.pdf output.pdf
但它重新采样图像。我在ghostscript上试过了不同的变种,比如
gs \
-o output.pdf \
-sDEVICE=pdfwrite \
-dDownsampleMonoImages=false \
-dMonoImageResolution=300 \
input.pdf
生成一个文件,但似乎没有变化,并且仍然注册为超大文件。此外,页面的大小和方向也不同。因此,将它们全部强制为一个尺寸/方向将无效。
(仅供参考,我真的不在乎,但下一步是让Acrobat Pro OCR所有这些文件,以及超过45英寸的OCR扼流圈。)
答案 0 :(得分:3)
PDF是一种独立于分辨率的格式,因此图像的分辨率等非常无关紧要。页面的“自然大小”是Acrobat所说的,它是从文件中的MediaBox(或CropBox)信息中收集的。
听起来像原来转换为PDF是错误的,文件真的是他们声称现在的(媒体)大小。
我怀疑你可能得到你需要的结果;你只是'需要调整文件大小。问题是,如果媒体大小不同(你说他们这样做),这不是一件容易的事。
然而,在进一步推进之前,我建议你带一个你想成为8.5x11的文件并试试这个:
gs -dBATCH -dNOPAUSE \
-sDEVICE=pdfwrite \
-dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 \
-dFIXEDMEDIA \
-dPDFFitPage \
-sOutputFile=output.pdf \
input.pdf
这将修复8.5x11使用的媒体,并告诉Ghostscript调整文档大小以适应页面(通过计算和应用比例因子)。它不应该影响除压缩之外的图像数据,如果有彩色图像,我们可能需要担心JPEG伪像,但可以单独处理。
答案 1 :(得分:2)
cpdf -scale-pages usletterportrait in.pdf -o out.pdf
除了将页面内容包装在转换矩阵中以进行缩放之外,不会触摸页面内容,也会缩放媒体/裁剪/艺术/出血/修剪框。
(商业,我很害怕:
免责声明:我写了。)
答案 2 :(得分:1)
修改原始的gs
命令,如下所示:
gs \
-o output.pdf \
-sDEVICE=pdfwrite \
-dPDFFitPage \
-g6120x7920 \
input.pdf
然后检查两件事:
如果输入仅以灰度扫描文档(看起来像是),则无需设置-dDownSample*Images
或设置-d*ImageResolution
。