2016-10-12 25 views
0

我有一個具有相同縱橫比但不一定相同分辨率的jpeg圖像的大集合。我需要將這些文件合併成一個(或多個)pdf文檔,每個頁面顯示多個圖像。
我需要指定目標頁面大小(a4/letter),我需要精確控制組合圖像的最終大小。Linux,將圖像合併到精確的平鋪的pdf中。 ImageMagick的?另類?

這種情況就像是「合併打印的護照照片列表」。

我嘗試從Imagemagick蒙太奇,但我無法完成縮放。如果所有圖像都具有完全相同的分辨率,我可以嘗試找到一些巫毒數字並以某種方式使其工作。
也許imagemagick是錯誤的方法?有沒有辦法用x:y「slots」創建一個已經具有正確打印尺寸的pdf模板,然後將這些圖像「喂」到這些插槽中?

+0

也許如果你提供了2-3張不同分辨率的圖像和一個帶有插槽的模板,有人可能會幫忙... –

+0

我在問是否會更好的方法以及如何創建這樣的模板。作爲蒙太奇和轉換的替代方法。所以顯然我不知道該怎麼做。 (至少不是在Linux cmd上,我想避免爲這樣一個簡單的功能編寫應用程序。) –

回答

1

我用pdflatex做了一件事情。你可以在Python/Ruby/bash /中編寫一個小腳本來查找所有圖像文件,然後爲每組N個輸出LaTeX源代碼在頁面上放置N個圖像。最後,將其轉換爲pdflatex,並且您將擁有一個嵌入了所有圖像的精美PDF文檔。它應該少於10行代碼,再加上一點樣板。

這會將圖像以其原始分辨率粘貼,並依靠PDF呈現器將其大小設置爲紙張大小。如果某些源圖像非常大,則可能會有點浪費。我想你可以使用即時通訊軟件或相當的功能,首先將大一點的尺寸縮小一點。

編輯:我做了個小例子。我的乳膠是可怕的,我敢肯定,你可以寫的東西好得多:

#!/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文件,並生成圖像文件乳膠列出四個,然後:

pdflatex x.tex 
evice x.pdf 

要生成PDF並查看它。

+0

這是一個好主意。我用乳膠寫了很多論文和論文,但我沒有想到。這將提供更多的控制,並允許非網格佈局。我可以創建一個帶有固定文件名的模板,而不用爲每個頁面創建新的源代碼,只需運行腳本即可複製和重命名圖像。 –

+0

我會將此標記爲答案,因爲我現在使用膠乳作爲解決方案。注意:我不會從腳本創建tex代碼。我像Texmaker一樣構建.tex模板,然後使用腳本將磁盤或模板中的圖像切換出來。這樣更復雜的佈局是可管理的,模板更容易控制/共享。即使是手動快速骯髒的切換圖像也是可能的。對於混合解決方案,可以通過sed運行.tex文件並替換動態部分的標題。 –

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確保稍微縮小的圖像將縮放到所需的尺寸。這樣網格保持完好,打印可以更容易。
這對裁剪學生證等等是足夠好的,但它不像人們想要的那樣精確。我會研究乳膠方法,看看如何解決問題。