使用 imagemagick 平铺/连接高分辨率 PDF 文件

Posted

技术标签:

【中文标题】使用 imagemagick 平铺/连接高分辨率 PDF 文件【英文标题】:Tile/concatenate high resolution PDF files with imagemagick 【发布时间】:2015-10-03 01:00:03 【问题描述】:

我有 9 个高质量的 PDF 文件。我想将它们合并成一个 3x3 的大 PDF。然后我想把它变成一个PNG文件。我想在这个过程中保持分辨率/清晰度,以便在生成的 PNG 上我可以放大并仍然看到精细的细节。我想我可以用 imagemagick 做到这一点,但我很挣扎。请问有什么想法吗?

我已经尝试过将它们合并到一起开始。它可以工作,但质量不会保持不变。

montage input_*.pdf -background none -tile 3x3 -geometry +0+0 output.pdf

请注意,文件大小和生成图像的大小不是问题。我不需要打印它或类似的东西。只能在电脑上查看。

以下是其中三个 PDF 文件的示例:

1) https://www.dropbox.com/s/qc094jg1nkfk0jw/input_1.pdf?dl=0

2) https://www.dropbox.com/s/gb4u8r7bxg8lw2r/input_2.pdf?dl=0

3)https://www.dropbox.com/s/97dhi42wrvfxfd2/input_3.pdf?dl=0

每个 PDF 为 1071 x 1800 pts(使用 pdfinfo)。

谢谢

詹姆斯

【问题讨论】:

【参考方案1】:

与其坚持使用PDF,然后合并然后转换为PNG,不如先将图像提取为PNG,然后像这样连接PNG文件:

pdfimages -png input_1.pdf a
pdfimages -png input_2.pdf a
pdfimages -png input_3.pdf a

# Combine them side by side
montage a-*png -background none -tile 3x3 -geometry +0+0 output.png

# Or combine with "convert"
convert a-*.png +append result.png

第二个文档好像有掩码...

pdfimages -list input_1.pdf
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image   12000 20167  icc     3   8  image  no         9  0   807   807 1260K 0.2%

pdfimages -list input_2.pdf
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image   12000 20167  icc     3   8  image  no         9  0   807   807 5781K 0.8%
   1     1 smask   12000 20167  gray    1   8  image  no         9  0   807   807  230K 0.1%

pdfimages -list input_3.pdf
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image   12001 20167  icc     3   8  image  no         9  0   807   807 2619K 0.4%

【讨论】:

由于某种原因从您的第二个和第三个输入文件中提取图像似乎存在一些问题 - 它们是否以不同的方式生成? 我想你知道这 3 张图片都是 12,000x20,000 像素,所以结果是 0.75 Gigapixel 的图片? 嗨,马克。我不知道我的第二个和第三个图像是不同的。一位同事编写了 R 脚本来生成它们。让我调查一下,然后回复你。感谢您的帮助,非常感谢。 PS:我将尝试用生成的图像制作类似的东西:build-failed.blogspot.co.uk/2012/11/… 嗨,马克。我重新创建了文件。但我正在尝试运行它,但它看起来不正确:pdfimages -png input_1.pdf a

以上是关于使用 imagemagick 平铺/连接高分辨率 PDF 文件的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick 平铺因 JPEG 失败

ImageMagick:转换、裁剪、调整大图像

ImageMagick 仅平铺第一行

使用 Imagemagick 将大图像裁剪为特定的纵横比,然后调整它们的大小

扫描仪扫描文件处理之imagemagick_resize.py

使用Sphinx ImageMagick扩展名sphinx.ext.imgconverter更改已转换图像的分辨率