Pdf

將多個 PDF 文件合併為一個(按矩陣排列)

  • December 8, 2021

擁有一組 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

引用自:https://unix.stackexchange.com/questions/161715