Fusionar dos archivos pdf uno al lado del otro en la línea de comando

Fusionar dos archivos pdf uno al lado del otro en la línea de comando

Tengo dos archivos pdf con la misma cantidad de páginas y quiero comparar cada página con la página correspondiente en el otro archivo. Para esto, me gustaría fusionar, por ejemplo, la página 1 de File1.pdf con la página 1 de File2.pdf para obtener una página en el nuevo documento. Luego, la página 2 de File1.pdf con la página 2 de File2.pdf y conviértala en la página 2 del nuevo archivo.

Enesta preguntaYa aprendí que puedo poner dos páginas en una con la --nupopción del pdfjamcomando:

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

Lo mismo se puede lograr con el ImageMagickpaquete:

montage *.pdf merged.pdf

Pero esto junta las páginas 1 y 2 del primer archivo y hace lo mismo más adelante con el segundo archivo, no como se esperaba.

Lo que hice fue dividir los dos documentos. El primer archivo tenía números pares en el nombre del archivo, el segundo números impares (en realidad, creé los archivos nuevamente con los nombres de archivo apropiados). Luego fusioné todos los archivos nuevamente con

pdftk *.pdf cat output merged.pdf

y finalmente poner dos páginas en una con

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

Podría escribir un script con un bucle para hacer esto, pero me preguntaba si existe una frase sencilla para lograrlo. ¿Quizás no encontré el comando pdfjam, pdftk o ImageMagick correcto?

Respuesta1

Puede dividir File1.pdf y File2.pdf en páginas y luego combinar esos archivos tmp en File1+2.pdf de esta manera:

# 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

Respuesta2

Yo usaría esto:

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

Quizás lo aprecies. Me gusta porque es pequeño y rápido, pero las páginas de manual necesitan mejorar. :-(

Respuesta3

(Si no entiendo mal lo que necesita el OP), aquí hay una solución simple

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

Con pdftk ... shuffle A B ..., creas un archivo PDF intermedio que se verá así

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

Luego, con pdfjam, fusionas las páginas pares e impares del archivo intermedio:

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

Se me ocurrió esta solución y la probé.

Respuesta4

R, err, un poco tarde, pero puede ser útil para alguien más.

El enfoque original del OP, mostrar páginas una al lado de la otra, se puede lograr con la otra respuesta dada.

Sin embargo, el enfoque puede resultar arduo si el objetivo es encontrar alguna pequeña diferencia textual. Para ello, utilice un pdfdiff, del cual hay algunos de diferentes autores, comerciales, de código abierto, de línea de comandos y GUI por igual.

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

Tenga en cuenta que este enfoque no es tan eficaz para las imágenes, ya que las imágenes "idénticas" pueden codificarse de forma diferente.

información relacionada