將多個 PDF 文件合併為一個(按矩陣排列)
擁有一組 PDF 文件,可以說:
in-01.pdf
,in-02.pdf
,in-03.pdf
, … 我想將所有這些文件組合成一個文件,形成一個M x N
矩陣。該命令
montage
允許這樣做(M
並且N
應該是整數):montage -mode concatenate -tile NxM in-*.pdf out.pdf
問題是生成的 PDF 的大小很大,而我希望它(可能只是)比所有輸入 PDF 大小的總和大一點。我認為
montage
首先將輸入 PDF 轉換為圖像,然後從這些圖像中創建輸出 PDF(例如,原始 PDF 中的文本不會顯示為輸出 PDF 中的文本,而是顯示為質量較低且更大的圖像尺寸)。我想應該有辦法做到這一點(例如,LATEX 允許在另一個 PDF 中插入 PDF 圖像,而無需先將其轉換為圖像)。
我正在尋找在 GNU/Linux 系統下使用免費軟體工具的命令行替代方案。
注意:我們可以假設這些 PDF 文件具有完全相同的尺寸(寬度和高度)。它們是自動生成的 PDF 圖像,通常由繪圖/圖形(簡單的形狀線條和矩形)和一些文本(標題、標籤…)組成。
您可以使用pdfjam套件中
pdfnup
的實用程序。pdfnup in.pdf --nup 3x3
應該輸出文件in-nup.pdf ,其中**in.pdf的頁面排列在一系列頁面中,其中原始 pdf 的 3x3 矩陣。
您應該將所有 pdf 文件合併到一個文件中,還必須為輸出文件指定紙張大小,請參閱 pdfjam 文件以獲取詳細資訊。
您在此處嘗試模擬的佈局稱為N-up。有幾種方法可以做到這一點。正如 xae 的評論,你可以用 pdfjam 做到這一點。在那裡看到我的評論。例如:
pdfjam --suffix nup --nup 2x2 input.pdf
將產生一個 4-up,2x2 矩陣。或者,您可以傳遞
--landscape
選項以從橫向而不是縱向查看矩陣。你也可以通過後記來做到這一點
pdf2ps input.pdf input.ps psnup -4 input.ps output.ps ps2pdf output.ps output.pdf
其中
-4
表示 4-up (2x2)如果您直接嘗試在 linux 上列印此 pdf 文件,我認為 CUPS 客戶端包含一個
lpr
帶有 N-up 選項的 Berkley LPR 列印假離執行緒序 ( ) 版本。您可以使用該選項lpr -o number-up=4 input.pdf
或將其設置為預設值
lpoptions -p QueueName -o number-up=4