Tengo dos pdf o archivos postscript (puedo trabajar con cualquiera de ellos). Lo que quiero hacer es combinar cada página en la parte superior de la otra, de modo que page1 de Un documento será combinada con la página 1 del documento B para producir la página 1 del documento de salida. Esto no es algo que necesariamente necesita hacer mediante programación, a pesar de que sería útil.

Alguna idea?

  • Ver pregunta similar aquí en Stackoverflow y por qué esto es difícil.
  • que no tiene relación con este problema. El OP dice que se puede trabajar directamente con los archivos Pdf. No es realmente difícil de todos modos.

9 Comentarios

  1. 78

    Usted puede hacer esto con los archivos pdf mediante la herramienta de línea de comandos pdftk el uso de la stamp o background opción.

    por ejemplo,

    $ pdftk file1.pdf background file2.pdf output combinedfile.pdf
    

    Esto sólo funcionará con una página de archivo en segundo plano. Si tiene varias páginas, puede utilizar el multibackground comando en su lugar.

    • Gracias, la opción de fondo que funcionó para mí 🙂 Solo para aclarar, el archivo1.pdf se coloca por encima del archivo2.pdf. Gracias!
    • pdftk en HP-UX Itanium 11.31 ia64 no se puede ejecutar. $(nombre):>pdftk PclConvertedToPDF.PDF sello sourcePDFShifted.PDF de salida FinalPackList.pdf [HP ARIES32]: archivo de Núcleo de 32 bits PA-RISC aplicación [HP ARIES32]: /usr/local/bin/pdftk guardan en /core.pdftk fallo de Memoria(coredump) Alguna idea de cómo arreglar esto ?
    • Las cifras que estoy tratando de sobreponer tienen un fondo blanco en lugar de un fondo claro… hay una manera de pedir este comando para tratar blanco como transparente? Gracias.
    • Sin embargo, las nuevas versiones de Ubuntu no incluyen pdftk, por lo que tiene a «contaminar» su repositorios con ppa del.
    • Tenga en cuenta que usted puede colocar archivo2.pdf en archivo1.pdf con el «sello» de comando en lugar del «fondo de comando».
  2. 18

    He tenido éxito en la solución de este problema (PDF únicamente y Python) mediante el uso de pyPdf, específicamente el mergePage operación.

    De la documentación:

    # add page 4 from input1, but first add a watermark from another pdf:
    page4 = input1.getPage(3)
    watermark = PdfFileReader(file("watermark.pdf", "rb"))
    page4.mergePage(watermark.getPage(0))
    

    Debería ser suficiente para tener una idea.

    • marca de agua.mergePage(página4 cómo) si desea que la marca de agua detrás del texto.
    • Así fue como empecé – yo no estaba asombrado por las longitudes PyPDF2 fue a la combinación de las páginas. PDF el contenido de la página puede ser una matriz: asegúrese de que es de la página que desee procesa primero, anexar todas las transmisiones de contenido de la página a la que desea prestados después de/en la parte superior de eso. El manejo de «las cajas» es otro de los interesantes lata de gusanos…
  3. 2

    Si usted está tratando con sólo postscript, las ocasiones son el único «saltos de página» son los ‘showpage’ operador.

    En cuyo caso puede simplemente tomar los datos postscript desde el principio de un archivo a la primera instancia de ‘showpage’, hacer lo mismo con el otro archivo, luego concatenar estos 2 pedazos de postscript para crear la nueva página.

    Si los 2 archivos son sólo una página, entonces usted puede ser capaz de simplemente unir los 2 archivos.

    • Usted puede lanzar en un (g) save/restorede par en torno a la «gordi», incluido en primer lugar.
  4. 1

    Usted puede convertir archivos pdf en imágenes y superponer una encima de la otra capa igual.

    Un adecuado biblioteca de gráficos que puede utilizar esto iba a funcionar.

    Marca de agua sugerencia de arriba tiene un gran potencial como siempre que uno no se encuentra con problemas en su idioma o gráficos/pdf biblioteca de la elección.

    • Es, definitivamente, una posible solución, pero que iba a perder el escalable calidad de cualquiera de los gráficos vectoriales en los archivos. Un proceso que mantiene el más alto nivel de contenido de la imagen de la modelo son generalmente preferido.
    • Definitivamente posible. Si usted está buscando para representar a la impresión de todos modos, la primera vez que la mezcla se hace se puede hacer en calidad suficientemente alta como último recurso. También debe haber una manera de tomar el vector de elementos en cada página y en lugar de combinarlos en una sola página.
  5. 1

    PDFbox para Java soporta una Superposición de clase que permite combinar archivos Pdf de esta manera. Ver esta respuesta: Marcas de agua con PDFBox

    Sin embargo, tanto PyPDF2 y PDFbox han sido fiables en mi experiencia, pero quizás esto sea útil para alguien.

Dejar respuesta

Please enter your comment!
Please enter your name here