Zwei PDF-Dateien nebeneinander in der Befehlszeile zusammenführen

Zwei PDF-Dateien nebeneinander in der Befehlszeile zusammenführen

Ich habe zwei PDF-Dateien mit der gleichen Seitenzahl und möchte jede Seite mit der entsprechenden Seite in der anderen Datei vergleichen. Dazu möchte ich beispielsweise Seite 1 von File1.pdf mit Seite 1 von File2.pdf zusammenführen, sodass im neuen Dokument eine Seite entsteht. Dann Seite 2 von File1.pdf mit Seite 2 von File2.pdf und diese zu Seite 2 der neuen Datei machen.

Indiese Frage--nupIch habe bereits gelernt, dass ich mit der Option des Befehls zwei Seiten auf einer Seite zusammenfassen kann pdfjam:

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

Dasselbe kann mit dem ImageMagickPaket erreicht werden:

montage *.pdf merged.pdf

Allerdings werden dabei Seite 1 und Seite 2 der ersten Datei zusammengefügt und das gleiche später auch mit der zweiten Datei gemacht – nicht wie vorgesehen.

Was ich gemacht habe, ist, die beiden Dokumente zu teilen. Die erste Datei hat gerade Zahlen im Dateinamen, die zweite ungerade Zahlen (eigentlich habe ich die Dateien mit entsprechenden Dateinamen neu erstellt). Dann habe ich alle Dateien wieder zusammengeführt mit

pdftk *.pdf cat output merged.pdf

und schließlich zwei Seiten auf eine legen mit

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

Ich könnte ein Skript mit einer Schleife dazu schreiben, aber ich frage mich, ob es dafür eine einfache Einzeiler-Anweisung gibt. Vielleicht habe ich nicht den richtigen pdfjam-, pdftk- oder ImageMagick-Befehl gefunden?

Antwort1

Sie können File1.pdf und File2.pdf in Seiten aufteilen und diese temporären Dateien dann wie folgt zu File1+2.pdf kombinieren:

# 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

Antwort2

Ich würde das hier verwenden:

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

Vielleicht wirst du das zu schätzen wissen. Mir gefällt es, weil es klein und schnell ist, aber die Manpages müssen verbessert werden. :-(

Antwort3

(Wenn ich die Anforderungen des OP richtig verstehe) hier eine einfachere Lösung

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

Mit pdftk ... shuffle A B ...erstellen Sie eine Zwischen-PDF-Datei, die wie folgt aussieht:

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

Anschließend pdfjamfügen Sie mit die ungeraden und geraden Seiten der Zwischendatei zusammen:

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

Ich habe gerade diese Lösung gefunden und getestet.

Antwort4

Ein, ähm, etwas spät, aber vielleicht hilft es jemand anderem.

Der ursprüngliche Ansatz des OP, Seiten nebeneinander anzuzeigen, kann durch die andere gegebene Antwort erreicht werden.

Der Ansatz kann jedoch mühsam sein, wenn das Ziel darin besteht, kleine Textunterschiede zu finden. Verwenden Sie zu diesem Zweck ein PDF-Diff, von dem es einige von verschiedenen Autoren gibt, sowohl kommerziell als auch Open Source, sowohl für die Befehlszeile als auch für die GUI.

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

Beachten Sie, dass dieser Ansatz für Bilder nicht so effektiv ist, da „identische“ Bilder unterschiedlich codiert werden können.

verwandte Informationen