コマンドラインで2つのPDFファイルを並べて結合する

コマンドラインで2つのPDFファイルを並べて結合する

同じページ数の PDF ファイルが 2 つあり、各ページを他のファイルの対応するページと比較したいと考えています。このために、File1.pdf のページ 1 を File2.pdf のページ 1 と結合して、新しいドキュメントに 1 ページになるようにします。次に、File1.pdf のページ 2 を File2.pdf のページ 2 と結合して、新しいファイルのページ 2 にします。

この質問--nup次のコマンドのオプションを使用して、1 ページに 2 つのページを配置できることをすでに学びましたpdfjam

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

同じことは次のパッケージでも実現できますImageMagick:

montage *.pdf merged.pdf

しかし、これにより、最初のファイルのページ 1 とページ 2 がまとめられ、後で 2 番目のファイルでも同じ処理が行われますが、これは意図したとおりではありません。

私がやったのは、2つの文書を分割することです。最初のファイルのファイル名は偶数、2番目のファイルは奇数です(実際には、適切なファイル名でファイルを新しく作成しました)。その後、すべてのファイルを再度結合しました。

pdftk *.pdf cat output merged.pdf

そして最後に2ページを1つにまとめ、

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

えーと、ちょっと遅いですが、他の誰かの役に立つかもしれません。

ページを並べて表示するという OP の元のアプローチは、他の回答によって実現できます。

ただし、小さなテキストの違いを見つけることが目的の場合、このアプローチは困難になる可能性があります。その目的には、pdfdiff を使用します。pdfdiff には、さまざまな作成者によるもの、商用、オープンソース、コマンドライン、GUI など、いくつかあります。

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

このアプローチは、「同一の」画像でも異なる方法でエンコードできるため、画像に対してはそれほど効果的ではないことに注意してください。

関連情報