【问题标题】:Linux, combine images to precise scaled tiled pdf. Imagemagick? Alternative?Linux,将图像组合成精确缩放的平铺 pdf。图像魔术师?选择?
【发布时间】:2016-10-12 06:51:55
【问题描述】:

我收集了大量具有相同纵横比但不一定具有相同分辨率的 jpeg 图像。我需要将它们组合成一个(或多个)pdf 文档,每页显示多个图像。
我需要指定目标页面大小(a4/letter),并且需要精确控制组合图像的最终大小。

该场景类似于“组合护照照片列表进行打印”。

我尝试了 Imagemagick 的蒙太奇,但无法完成缩放。如果所有图像的分辨率完全相同,我可以尝试找到一些巫毒数字并以某种方式使其工作。
也许 imagemagick 是错误的方法?有没有办法创建一个带有 x:y “插槽”的 pdf 模板,该模板已经具有正确的打印尺寸,然后将图像“输入”到这些插槽中?

【问题讨论】:

  • 也许如果你提供 2-3 张不同分辨率的图片和一个带插槽的模板,有人可能会帮忙...
  • 我在问这是否是一种更好的方法以及如何创建这样的模板。作为摆弄蒙太奇和转换的替代方法。所以显然我不知道该怎么做。 (至少不是在 linux cmd 上。我想避免为这么简单的功能编写应用程序。)

标签: linux pdf imagemagick image-manipulation image-gallery


【解决方案1】:

我用pdflatex 做了一些事情。你在 Python/Ruby/bash/whatever 中编写一个小脚本来遍历目录查找所有图像文件,然后为每组 N 个输出 LaTeX 源代码,在页面上布置 N 个图像。最后,通过管道将其输入pdflatex,您将拥有一个漂亮的 PDF 文档,其中嵌入了所有图像。它应该少于 10 行代码,加上一些样板文件。

这将以原始分辨率粘贴图像,并依靠 PDF 渲染器将它们调整为纸张大小。如果某些源图像非常大,可能会有点浪费。我想您可以使用 IM 或等效的工具先将较大的尺寸缩小一点。

编辑:我做了一个小例子。我的乳胶很糟糕,我相信你可以写得更好:

#!/usr/bin/ruby

puts <<HEADER
\\documentclass[a4paper]{article}
\\usepackage{relsize}
\\usepackage[pdftex]{graphicx,color}
\\begin{document}
HEADER

ARGV.each_slice(4).to_a.each do |images|
    puts "\\begin{center}"
    puts "\\thispagestyle{empty}"
    images.each {|filename| puts "\\includegraphics[width=2in]{#{filename}}"}
    puts "\\end{center}"
    puts "\\newpage"
end

puts <<FOOTER
\\end{document}
FOOTER

运行类似:

./layout.rb x/* > x.tex

要扫描目录x/ 的jpg 文件并生成一个包含四个图像的latex 文件,然后:

pdflatex x.tex
evice x.pdf

生成 PDF 并查看它。

【讨论】:

  • 这是个好主意。我用乳胶写了很多论文和论文,但我只是没有想到这一点。这将提供更多控制并允许非网格布局。我可以创建一个具有固定文件名的模板,然后运行一个脚本来复制和重命名图像,而不是为每个页面创建新源。
  • 我会将此标记为答案,因为我现在使用乳胶作为解决方案。注意:我不会从脚本创建 tex 代码。我在 Texmaker 之类的东西中构建 .tex 模板,然后使用脚本切换磁盘或模板中的图像。这样更复杂的布局是可管理的,模板更容易控制/共享。甚至可以手动快速而肮脏地切换图像。对于混合解决方案,可以通过 sed 运行 .tex 文件并替换例如动态部分的标题。
【解决方案2】:

我找到了一种可以接受的蒙太奇方式

montage -geometry +0+0 ../*.jpg +compress -resize 198x280 -extent 198x280 -tile 3x3 -gravity center -page a4 test.pdf

从 595x842 的 4 点大小开始,可以以百分比计算图块的目标大小。在示例中,它占页面的 1/3 和 3x3 网格。
-extent 确保将稍小的图像缩放到所需的大小。这样,网格就可以保持完整,并且可以更轻松地切割打印件。
剪出学生证等就足够了。但它并不像人们想要的那样精确,以获得良好的打印效果。我将研究乳胶方法,看看效果如何。

【讨论】:

  • 非常有用的建议,很有魅力!谢谢
猜你喜欢
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
相关资源
最近更新 更多