Cómo crear PDFs

      Por Gustavo Sánchez Muñoz, septiembre de 2006

      Introducción

      Como un un pdf es un fichero que sigue unas reglas determinadas en su estructura, cualquier procedimiento de construcción de ficheros que sea capaz de observar esas reglas podrá crear PDFs.

      La calidad de los PDFs resultantes dependerá de cuáles sean los criterios usados para construirlos y de las necesidades que tenga el usuario final. No es igual de fácil crear un PDF para ver en pantalla e imprimir en aparatos caseros, que hacer uno destinado a imprenta comercial en cuatricromía, por ejemplo (donde los requisitos son más estrictos).

      Hacer una lista de los métodos y programas capaces de crear PDFs y de sus posibilidades es una misión imposible: cada día hay más y su calidad es mejor (por no decir que las especificaciones del formato también avanzan).

      Por eso, esta página no pretende ser una lista, sino sólo mencionar los principales programas que el usuario medio de artes gráficas, principalmente diseñadores gráficos, tiene a su disposición para cear PDFs válidos para imprenta.

      Su origen es una página creada hace pocos años Laurens Leurs para su PDF Corner, que me permitió traducir y publicar en español. En esta revisión, he aprovechado lo que he podido de aquel original. Espero que sirva para hacerse una idea de cómo está la situación general, sobre todo en lo que respecta a crear PDFs para artes gráficas.

      Formas de crear PDFs

      1. Programas capaces de crear PDFs por si mismos.

        Cada día hay más programas que son capaces de crear directamente PDFs sin necesidad de añadidos (plug-ins) o terceros programas (como Acrobat Distiller).

        Estos programas se pueden dividir en dos categorías: Aquellos cuyos PDFs son de alta calidad y los que simplemente crean PDFs.

        Los primeros suelen ser programas relacionados con las artes gráficas, donde los requisitos son más exigentes y estrictos. Por eso sus fabricantes han incluido librerías de programación para PDF bastante complejas. Los más destacados son InDesign, Illustrator, Photoshop, PageMaker, FrameMaker (de Adobe), CorelDraw,o Freehand. También hay algunos de código abierto que comienzan a abrirse camino, como Scribus. En sus versiones más recientes, la mayoría de ellos son capaces de crear directamente PDFs conforme a los estándares PDF/X.

        Los segundos suelen ser programas del mundo ofimático, donde las necesidades son menores e interesan más capacidades como las de crear PDFs ligeros o indexables.

        En ambos casos, hay que tener en cuenta que no es intención de los programadores crear programas cuyo formato nativo sea PDF, ya que no es un formato pensado para la reedición.

      2. Programas que se usan para crear PDFs a partir de otros programas

        Son programas cuya finalidad es tomar documentos de otras aplicaciones y crear PDFs a partir de ellos. La mayoría funcionan como impresoras virtuales; es decir: Programas que simulan ser impresoras y que imprimen PDFs. De hecho, algunos de ellos son casi simples controladores de impresora.

        Otros son verdaderos intérpretes PostScript y otros funcionan como servidores de impresión, capaces de procesar gran cantidad de documentos de diverso origen para crear PDFs de forma automatizada.

        Como en el caso de los programas capaces de generar PDFs por si mismos, podemos dividirlos en dos categorías: Aquellos cuyos PDFs son de alta calidad y los que simplemente crean PDFs. En cada caso, hay dos subcategorías: Los que funcionan de forma aislada en un ordenador (como programa o como controlador de impresión) y los que hacen de servidores para crear PDFs.

        En la primera categoría, se encuentran programas como Acrobat Distiller, Jaws PDF Creator, SpeedFlow Check y Asura (ambos de OneVision), a Colour Chameleon o Nitro PDF. De ellos, destacaría Acrobat Distiller, por ser el más extendido entre todo tipo de usuarios profesionales, y Asura, por ser una solución de alto nivel para artes gráficas.

        En la segunda categoría, se encuentran utilidades como GhostScript, PDFCreator, CutePDF, Primo PDF, PDF995, eDocPrinter. Muchos de ellos son shareware o pertenecen a la corriente de código abierto.

        Antiguamente existía PDFWriter, de la propia Adobe, pero hoy se puede considerar desaparecido.

        Sistema OS X de Apple

        Mención aparte merece el sistema OS X de Apple,que incluye un modelo de representación visual llamado Quartz 2D que, entre otras cosas, permite convertir PostScript a PDF directamente desde el mismo sistema a todos los programas. Si un programa incluye capacidades PDF pertenecientes a las últimas especificaciones de ese formato, es posible que la versión de Quartz 2D que haya en el sistema no sea capaz de generar el PDF adecuadamente.

      3. Servicios de creación de PDF en línea

        Existen algunos sitios web que gratuitamente o a cambio de una cuota de suscripción, permiten crear PDFs a través de Internet: Se carga el fichero original al servidor y éste devuelve el PDF. Dos servicios así que existen en la actualidad son PDF Online (de la firma BCL Technologies) y Create Adobe PDF Online, de la propia Adobe. Sobre la calidad y rapidez del servicio no tengo referencias de momento.

      4. Herramientas de programación para crear PDFs

        • Librerías de código

          Existen unas cuantas librerías y herramientas de programación que permiten incluir la capacidad de crear ficheros PDF en diversos programas. Como en el caso de los programas, cada vez hay más y es imposible describirlas a todas. Las más destacables desde el punto de vista de las artes gráficas (aparte de las que usa la propia Adobe) son Jaws PDF Library (esta es la opción elegida por Quark para poder crear PDFs directamente con Quark XPress a partir de su versión 6) y PDFlib.

        • Clases PHP

          Además de las funciones para crear o tratar PDFs que se incluyen en las últimas versiones del lenguaje PHP, existen algunas clases en lenguaje PHP para poder generar PDFs sobre la marcha en sitios web. En sistemas de gestión de contenido (como Drupal, usado en este mismo sitio web) eso es bastante útil. Dos ejemplos de esas clases son FPDF y TCPDF. Las posibilidades de creación de estas clases es bastante limitada, como su calidad final.

        • Crear PDFs a partir de XML

          Mediante un vocabulario especializado para formateo de objetos con hojas de estilo XSL-FO, es posible crear directamente PDFs a partir de datos XML, que son absolutamente independientes de ese formato.

          La potencia de esta vía XSL-FO es grande, sobre todo en lo que a formateo y entrega instanea de datos se refiere. Cada vez hay más productos que permiten crear o tratar las reglas necesarias para ese formateo mediante XSL-FO (Visual Stylesheet Designer de Altova o XEP Engine de RenderX, Xml2PDF de AltSoft, por ejemplo) o para generar los PDFs.

          Ese es el caso del proyecto Apache FOP (Formatting Objects Processor), un formateador de datos basado en lenguaje Java capaz de generar PDFs (además de otros formatos).

      5 comentarios

      Crear PDFs con Java

      Eduardo me ha enviado muy amablemente un mensaje sobre la creación de PDFs con Java. Lo transcribo parcialmente:

      Te escribo porque me ha parecido muy completo e interesante los contenidos acerca del famoso formato PDF, del cual, todos conocen algo y todos los hemos usado, pero casi nadie lo conoce en profundidad.

      Podría decirse que es como las calderas de la calefacción central: todos la utilizan pero pocos saben como funciona o esta construida.

      Soy desarrollador de software, y desde mi punto de vista creo que puedo aportarte algo en cuanto al apartado acerca de la creación de PDFs.

      El contenido es completisimo y, aunque tu enfoque general es para el diseño gráfico, como veo que nombras la opción de creación con PHP, tambien decirte que existe una libreria de clases Java llamada "iText" que permite la composición y creación de archivos PDF además de una manera muy sencilla y, si se quiere profundizar, muy completa a la hora de introducir contenidos de todo tipo en el archivo a crear.

      Es de utilización libre. Yo la he utilizado y es increiblemente util para desarrolladores Java que necesitan crear informes o documentos de cualquier tipo en este universal formato.

      Todo esta en un libro de la editorial Manning llamado iText in Action. Podría enviarte más referencias, pero toda la info a raiz de esto está, como no podía ser de otra manera, "a flor de Google" :)

      Si facilitarte la referencia al manual oficial en internet, que esta en http://itextdocs.lowagie.com/tutorial/

      y algunas otras referencias: http://es.wikipedia.org/wiki/IText y http://www.lowagie.com/iText/

      Nada más, solo felicitarte por tus publicaciones en internet y enviarte un cordial saludo.

      Activo los comentarios

      Veo que se me pasó la posibilidad de aportaciones externas. Gracias, Eduardo :)

      Error de texto en PDFs generados con iText

      Hola,

      Te escribo porque pareces tener una buena idea de como funciona iText. Estoy generando un PDF con imágenes y texto para ser procesado por Asura, pero Asura reconoce el texto del PDF como tipo notes y no como tipo text.

      ¿Hay alguna forma de corregir este problema al momento de generar el PDF con iText?

      Saludos y gracias por adelantado por la ayudas que puedas brindarme.

      Drewman

      ¿Cuál es la diferencia técnica?

      En mi trabajo diario de maqueteador de textos, he comprobado que al mandar archivos PDF en configuración "impresión comercial de alta calidad" o "...de prensa", no me da problema, igual que como si lo hiciera con un PDF/X-3. ¿Existe técnicamente alguna fundamental diferencia?? Saludo Gustavo y seguidores de este super site!

      Son valores predeterminados

      Pues depende del programa y de su versión pero básicamente esas etiquetas no son más que valores predeterminados que puedes variar a placer y guardar con otro nombre. Si se tiene curiosidad, es sólo cuestión de examinar donde cambian (personalmente no la tengo ya que hace mucho calor ;) ).

      Mientras tengas los valores adecuados para la creación de cada trabajo, da igual cómo llames a esas agrupaciones de valores.

      Añadir nuevo comentario