在命令列中並排合併兩個pdf文件

在命令列中並排合併兩個pdf文件

我有兩個頁數相同的 pdf 文件,想要將每個頁面與另一個文件中的相應頁面進行比較。為此,我想將 File1.pdf 的第 1 頁與 File2.pdf 的第 1 頁合併,以便它在新文件中獲得一頁。然後將 File1.pdf 的第 2 頁與 File2.pdf 的第 2 頁放在一起,使其成為新檔案的第 2 頁。

這個問題--nup我已經了解到,我可以使用命令選項將兩頁放在一頁上pdfjam

pdfjam File1.pdf File2.pdf --nup 2x1 --landscape --outfile File1+2.pdf

使用該套件也可以達到相同的效果ImageMagick

montage *.pdf merged.pdf

但這會將第一個文件的第 1 頁和第 2 頁放在一起,並稍後對第二個文件執行相同的操作 - 與預期不同。

我所做的就是拆分兩個文檔。第一個檔案的檔案名稱包含偶數,第二個檔案的檔案名稱包含奇數(實際上我使用適當的檔案名稱重新建立了檔案)。然後我再次合併所有文件

pdftk *.pdf cat output merged.pdf

最後將兩頁放在一頁上

pdfjam --nup 2x1 --landscape --outfile merged2up.pdf merged.pdf

我可以編寫一個帶有循環的腳本來執行此操作,但我想知道是否有一個簡單的單行程式碼可以實現此目的?也許我沒有找到正確的 pdfjam、pdftk 或 ImageMagick 命令?

答案1

您可以將 File1.pdf 和 File2.pdf 拆分為多個頁面,然後將這些 tmp 檔案合併為 File1+2.pdf,如下所示:

# Split files, note the naming scheme
pdfseparate File1.pdf temp-%04d-file1.pdf
pdfseparate File2.pdf temp-%04d-file2.pdf

# Combine the final pdf
pdfjam temp-*-*.pdf --nup 2x1 --landscape --outfile File1+2.pdf

# Clean up
rm -f temp-*-*.pdf

答案2

我會用這個:

sudo apt install psutils 
sudo apt install ghostscript

pdf2ps -sOutputFile=input1file%d.ps input1file.pdf input1file.ps # cut to individual pages
pdf2ps -sOutputFile=input2file%d.ps input2file.pdf input2file.ps
psmerge -oinput.ps *.ps # put them together page by page from the alternative files
pstops -p a4 "2:[email protected](21cm,0)[email protected](21cm,14.85cm)" input.ps output.ps # put 2 pages on one
ps2pdf output.ps output.pdf # convert back to pdf

也許你會感激這一點。我喜歡它,因為它小而快,但手冊頁需要改進。 :-(

答案3

(如果我沒有誤解OP的需求,)這是一個簡單的解決方案

pdftk A=File1.pdf B=File2.pdf shuffle A B output tmp-Figure1+2.pdf
pdfjam tmp-Figure1+2.pdf --nup '2x1' --landscape --outfile Figure1+2.pdf
rm tmp-Figure1+2.pdf

使用pdftk ... shuffle A B ...,您可以建立一個中間 PDF 文件,如下所示

File1-page1
File2-page1
File1-page2
File2-page2
. . . .

然後,pdfjam使用 合併中間文件的奇數頁和偶數頁:

File1-page1 File2-page1
File1-page2 File2-page2
. . . .

我剛剛想出了這個解決方案並進行了測試。

答案4

A,呃,有點晚了,但可能對其他人有幫助。

OP的原始方法,即並排顯示頁面,可以透過給出的其他答案來實現。

然而,如果目的是找到一些小的文本差異,那麼該方法可能會很困難。為了實現這一目標,請使用 pdfdiff,其中有一些來自不同作者、商業、開源、命令列和 GUI 等。

https://duckduckgo.com/?q=pdfdiff&t=ffab&ia=software

請注意,這種方法對於圖像來說並不那麼有效,因為「相同」圖像可以進行不同的編碼。

相關內容