我有大量的jpeg图像具有相同的宽高比但不一定具有相同的分辨率。我需要将这些文档组合成一个(或多个)pdf文档,每页显示多个图像 我需要指定目标页面大小(a4 / letter),我需要精确控制组合图像的最终大小。
这种情况类似于“将一张护照照片组合起来进行打印”。
我尝试使用Imagemagick的蒙太奇,但我无法完成缩放。如果所有图像具有完全相同的分辨率,我可以尝试找到一些伏都教数字并使其以某种方式工作 也许imagemagick是错误的方法?有没有办法创建一个x:y“slots”的pdf模板,它已经具有正确的打印尺寸,然后将图像“馈送”到那些插槽中?
答案 0 :(得分:1)
我用pdflatex
完成了某种事情。你用Python / Ruby / bash /中的任何一个编写一个小脚本来查找所有图像文件,然后对于每组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文件,并生成一个乳胶文件,其中的图像设置为4,然后:
pdflatex x.tex
evice x.pdf
生成PDF并查看它。
答案 1 :(得分:0)
我发现蒙太奇有一种可接受的方式
montage -geometry +0+0 ../*.jpg +compress -resize 198x280 -extent 198x280 -tile 3x3 -gravity center -page a4 test.pdf
从a4点大小595x842开始,可以按百分比计算切片的目标大小。在示例中,它是页面的1/3和3x3网格。
-extent确保将稍小的图像缩放到所需的大小。这样,网格保持完整,打印更容易切割。
它可以很好地删除学生身份证等。但它并不像人们想要的那样精确打印。我将研究乳胶方法,看看它是如何工作的。