Necesito fusionar algunos archivos PDF dormitados, y quiero que todos los archivos PDF de entrada comiencen en una página extraña en el archivo PDF de salida.
Ejemplo: A.pdf
tiene 3 páginas, B.pdf
tiene 4 páginas. No quiero que mi salida tenga 7 páginas. Lo que quiero es un pdf de 8 páginas en el que las páginas 1-3 son de A.pdf
, la página 4 está vacía y las páginas 5-8 son de B.pdf
. ¿Cómo puedo hacer esto?
Sé sobre pdftk, pero no encontré esa opción en la página del manual.
./pdf-cat-even $(cat list-of-file-names.txt) >concatenated.pdf
<list-of-file-names.txt tr '\n' '\0' | xargs -0 ./pdf-cat-even >concatenated.pdf
El primer paso es producir un archivo pdf con una página vacía. Puede hacerlo fácilmente con muchos programas (LibreOffice / OpenOffice, inkscape, (La) TeX, scribus, etc.)
Luego solo incluya esta página vacía donde sea necesario:
Si desea hacer esto automáticamente con un script, puede usar, por ejemplo,
pdftk file.pdf dump_data | grep NumberOfPages | egrep -o '[0-9]*'
para extraer el recuento de páginas.fuente
pdftk --version
devuelve pdftk 1.44. Recuerdo que mis amigos más conocedores pasaron al menos 15 minutos intentando diferentes cosas para conseguir este trabajo y se dieron por vencidos.La respuesta de Gilles funcionó para mí, pero como tengo que fusionar muchos archivos, es más conveniente si puedo leer sus nombres desde un archivo de texto. He modificado ligeramente el código de Gilles para hacer exactamente eso, tal vez ayudaría a alguien más:
fuente
También podría usar LaTeX para hacer esto (aunque sé que probablemente no sea lo que desea). Algo como lo siguiente debería funcionar:
Tenga en cuenta que
\cleardoublepage
solo inserta una página en blanco con clases hechas para impresión a doble cara (por ejemplo, libro)Se
pdfpages
pueden encontrar más opciones e información sobre CTAN .fuente
\includepdf[pages=-]{...}
.\cleardoublepage
solo inserta una página en blanco si está utilizando una clase hecha para impresión a doble cara. Estaba usando un artículo que no funciona; Lo arreglé y actualicé la pregunta para reflejar eso.\includepdf
incluye solo la primera página por defecto (no todas las páginas).\documentclass[twoside]{article}
Funciona también.Aquí está el código con PyPDF2 y python3
fuente