如何更改PDF中不同尺寸图像的DPI以实现每一页的常见“打印尺寸”?

3
我对栅格图像的世界还不熟悉,因此我首先会解释一下我使用的定义,并希望我能正确地使用它们:
- 几何形状(图像的总像素数%w *%h)
- 分辨率(每英寸像素/ ppi)
- 尺寸或“打印尺寸”(屏幕或打印机上的显示尺寸(例如以英寸为单位))

我有一些包含不同几何形状的栅格图像的PDF文档。在用evince打开时,它们因此都以不同的大小显示(我猜可能会打印出来)。我想在pdf中定义打印尺寸,以便evince(或任何其他查看器)在打开文档时显示每个页面的相同大小。

这应该如何实现?就我所知,图像的几何形状和打印尺寸与分辨率相关联。目前,我的其中一个pdf显示以下ImageMagick:identify输出:

$identify -units PixelsPerInch -format“%w x%h -%[resolution.x] x%[resolution.y] -%[fx:w/72] x%[fx:h/72] in\n”example.pdf

几何形状 - 分辨率 - 打印尺寸 -
538 x 375 - 72 x 72 - 7.47 x 5.20英寸
546 x 381 - 72 x 72 - 7.58 x 5.29英寸
1210 x 1681 - 72 x 72 - 16.80 x 23.34英寸
1658 x 1166 - 72 x 72 - 23.02 x 16.19英寸
542 x 365 - 72 x 72 - 7.52 x 5.06英寸
1673 x 1169 - 72 x 72 - 23.23 x 16.23英寸

我想实现一个恒定的打印尺寸(第3列),而且我不想更改图像的几何形状/避免重新压缩它,以便它不会失去质量。为了继续进行,我似乎需要理解以下内容,但我找不到任何信息:

1)这三个值中的哪一个实际上保存在pdf文档中,哪一个是由identify计算出来的?

2)哪个软件(以及如何)将允许我批处理一些pdf文件以实现我的目标。

3)假设几何形状和分辨率是pdf文件的值,并且打印尺寸是由此派生出来的,则软件需要计算每个图像的分辨率值,以使打印尺寸在所有页面上相等?

非常感谢!
问候,
本杰明


听起来好像是 PDF 在创建过程中出现了问题。也许你可以重新创建它们?我们要处理多少个文档?手动更正可能是一个更简单的解决方案... - PiTheNumber
大约有50个文档。它们都是用不同的扫描仪和不同的扫描选项创建的。我随着时间的推移逐渐添加页面,因此页面的几何/分辨率会有所变化。它们无法重新创建,因为原始文件已不存在,但我认为它们并没有损坏。 - user2960010
“常量打印尺寸”意味着图像将会被扭曲或填充,例如白色。此外,自动旋转是否允许也需要考虑。如果填充和自动旋转是可以的,那么只需使用以下命令即可完成:gs -sDEVICE=pdfwrite -sPAPERSIZE=a4 -dFitPage -dFIXEDMEDIA -o out.pdf -f in.pdf - user2846289
1个回答

1

1) 我认为只有前两个值实际存储在PDF中,但第三个值(打印尺寸)直接与分辨率(538x375)和像素密度(72ppi或72dpi)相关,因此可以轻松计算。

2) 你好像是在倒过来思考这个问题。有很多应用程序非常适合控制图像布局和打印。Adobe Illustrator是最常见的之一,也有一些免费的软件。但这些都需要加载图像,将它们在页面上进行视觉排列,并通过视觉方式调整打印尺寸,而不是通过编程方式。

3) 如果您确实想以编程方式完成此操作,我认为您会很难找到解决该问题的软件。GIMP和Photoshop都具有某些批处理功能,我知道GIMP具有相当强大的CLI,因此您可能可以使用它。

4) 是的,您将从所需的打印尺寸开始,将像素数除以英寸数以获取ppi / dpi。

注意:请记住,dpi是双向的。如果您有一个200 x 300像素的图像和一个400 x 400像素的图像,并且您想要它们都打印成10英寸正方形,则会扭曲200 x 300像素的图像,使其水平拉伸。200 x 300像素的图像看起来也比400 x 400像素的图像质量差,因为您可以使用更少的像素。

基于这些原因和其他原因,我强烈推荐视觉方法,而不是编码方法。

祝你好运!


我继续阅读有关ImageMagick的内容。它的工具_convert_在处理多个PDF文档中的页面时非常强大。它还带有“resize”和“density”选项,其中密度表示分辨率。当我将它们应用于文档并调查输出时,我发现在两种情况下生成的PDF仍然具有72dpi,并且几何形状已更改。是否有任何方法可以将密度/分辨率因子更改为与72不同的值,而触及图像本身?为什么是72呢? :) - user2960010
简而言之,是的,有一种方法。72dpi是打印的标准。值得注意的是,你实际上并不是在处理图像。PDF专门设计成文档打印媒介。我认为PDF可能不支持除了72dpi以外的任何分辨率。或者他们特意让你难以使用除了72dpi以外的分辨率,因为72dpi是打印媒体的标准分辨率。但这只是猜测...话虽如此,PDF实际上只是带有一些额外功能的JPG,因此在GIMP中更改DPI而不更改地理位置相对容易。不确定是否支持批处理... - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接