擁有一組 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 圖像,通常由繪圖/圖表(簡單形狀、線條和矩形)和一些文字(標題、標籤...)組成。
答案1
您可以使用以下實用pdfnup
程式pdfjam套房。
pdfnup in.pdf --nup 3x3
應該輸出文件in-nup.pdf與頁面在.pdf從原始 pdf 開始,以 3x3 矩陣排列在一系列頁面中。
您應該將所有 pdf 檔案合併為一個,並且您還必須指定輸出檔案的紙張尺寸,請參閱 pdfjam 文件以了解詳細資訊。
答案2
您在此嘗試模擬的佈局稱為N 向上。有幾種方法可以做到這一點。正如 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