Unir varios PDF en uno solo con Ghostscript

por | 14 febrero, 2016

ghostscript

Los documentos PDF, aunque tremendamente populares por su versatilidad y comodidad de lectura, no destacan precisamente por dar facilidades a la hora de trabajar con ellos o hacer modificaciones, como podría ser el fusionar varios archivos en uno solo.

Generalmente uso para esa labor PDFtk o su interfaz gráfica PDF Chain, pero en esta ocasión vamos a ver como podemos hacer eso utilizando Ghostscript, una suite de software que nos sirve de interprete de lenguajes PostScript y Portable Document Format (PDF), y que está disponible en los repositorios de todas las distribuciones GNU/Linux.

Solo nos hace falta una linea con el comando gs y unos cuantos parámetros:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=final.pdf 1.pdf 2.pdf 3.pdf 4.pdf

Donde final.pdf es el archivo de salida, resultante de unir 1.pdf, 2.pdf, 3.pdf, etc…

Podéis prescindir del parámetro -q si queréis ver como trabaja el programa y las páginas que incluye cada archivo:

gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=final.pdf 1.pdf 2.pdf 3.pdf 4.pdf

Como veis una solución bastante simple. Si conocéis otras opciones o programas no dudéis en postearlas en los comentarios, seguro que el resto de lectores lo agradecerán.

8 pensamientos en “Unir varios PDF en uno solo con Ghostscript

  1. Issac

    Buenas tardes replicante 😀
    Quisiera preguntarte si sabrás de algún ERP de OpenSource.
    Gracias

    Responder
    1. tannhausser Autor

      Una búsqueda en internet devuelve un montón de erp opensource, pero no he probado ninguno para poder hablar con algo de conocimiento.

      A ver si se pasa por aquí alguien que sepa del tema para orientarnos.

      Un saludo y gracias por comentar.

      Responder
  2. josefrito

    «pdf split and merge» es multiplataforma va sobe java y hace bien su trabajo, aunque la interface se ve un poco antigua. aunque desde hace algunos el que uso sobre opensuse es pdfchain. y otro muy, pero que muy interesante es «master pdf editor», gratuito para uso privado (la licencia para uso profesional creo que son 30 e) aunque este más bien es un editor de pdf. al estilo de Adobe Acrobat (pero en mejor), no esta en los repositorios de opensuse, pero desde su pagina web se puede descargar un rpm, y funciona bien y se actualiza sin problemas (como dato curioso, en la version windows deja una marca de agua, en la de linux no…) saludos.

    Responder
  3. guiso_de_lentejas

    No se como sucede, pero cada vez que ando necesitando hacer algo, a los pocos días haces una entrada con la solución!!!
    Cosa e’mandinga!!

    Saludos!

    Responder
    1. tannhausser Autor

      Es vudú!
      La mayoría de estos post los hago porque a mi me pasó algo similar (pdftk me daba un bug en un equipo y en otro no compilaba bien) y es una manera de tener a mano a mano la solución.
      Un saludo!

      Responder
  4. Gamliel Hernández

    Hola tannhausser,

    Te cuento que me encontraba convirtiendo imágenes jpg a pdf y basta con tener instalado imagemagick para esa tarea haciendo convert *.jpg resultante.pdf

    Como cosa sorprendente convert me daba cierto error por cuestiones que estaba exhausto el recurso de la caché, así que a pesar que si hacía *.jpg a salida .pdf decidí separar los jpg porque eran aproximadamente 360 así que los separé en 4 grupos de 90 archivos y creé 1.pdf 2.pdf 3.pdf 4.pdf

    Siguiendo esa lógica usé una expresión regular y probé convert [1-4].pdf salida.pdf lo cual me daba un error, creo que por el tamaño del pdf resultante que andaba por unos 85MB así que probé unir primero 1.pdf y 2.pdf en salida1.pdf y luego 3.pdf y 4.pdf en salida2.pdf al querer unir salida1.pdf con salida2.pdf con el comando convert me dio el problema antes mencionado, puntualmente es este:

    convert-im6.q16: cache resources exhausted `/tmp/magick-15042dxZSGpD1gHed49′ @ error/cache.c/OpenPixelCache/3982.

    Así que googleando encontré tu solución y me fue muuuy bien, y tengo que afirmar que me fue más que bien porque a pesar que hizo la concatenación de los 4 archivos me dejó el archivo resultante en 17.2MB un peso bastante liviano a pesar de que [1-4].pdf pesan aproximadamente 12MB cada uno.

    Sería genial ver como se puede convertir de una buena cantidad de archivos (*.jpg | *.gif | *.bmp | cualquier archivo de imagen) a uno .pdf haciendo uso de «gs».

    Buenísimo tu aporte, muchas gracias!

    Gamliel.

    Responder
    1. tannhausser Autor

      Genial! Me alegro que te haya servido de ayuda el post!

      Gracias a ti por pasarte y comentar 🙂

      Responder
  5. Rock en Mictlán

    Saludos y gracias.
    Una consulta pero para señalar solo ciertas páginas de diferentes pdf y elegir el orden entre estas, cuál sería el comando, el ejemplo de lo que quiero es este:

    1.pdf páginas 1-3, 2.pdf páginas 1-2, 1.pdf páginas 4-6.

    Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.