Transformación a PDF usando 'plantilla' de fondo

cancel
Showing results for 
Search instead for 
Did you mean: 
cnova
Member II

Transformación a PDF usando 'plantilla' de fondo

Hola  a tod@s,

mi cuestión es la siguiente, estoy archivando una serie de facturas que me vienen en texto plano y que convierto a PDF. Me piden que el fichero PDF que se genera, incorpore los datos de "preimpreso" de la factura. ¿Sabéis como puedo realizar la conversión del fichero txt a un PDF donde tenga el logotipo y demás datos genéricos de la factura?

Saludos,
2 Replies
pjcaracuel_2349
Active Member II

Re: Transformación a PDF usando 'plantilla' de fondo

Buenas,

Asi sin pensarlo mucho se me ocurre que podrías componer un documento en html  con los datos del fichero texto +logo+…. y luego este fichero html aplicarle la conversion a PDF.

Es solo una idea.

Saludos
cnova
Member II

Re: Transformación a PDF usando 'plantilla' de fondo

Me respondo a mí mismo. Como el servidor de Alfresco es un Linux, he optado por instalar la impresora PDF (cups-pdf) que provee CUPS (servidor de impresión).

  • He tocado el archivo de configuración para personalizar el directorio de salida de los PDF's.

  • Mando imprimir los ficheros de texto mediante lpr a la impresora cups-pdf para obtener la "salida" de cómo quedarían en papel preimpreso
  • lpr -o cpi=12 -o page-top=36 -o page-left=58 -P PDF Documentos/alfresco_test/00001282.txt

  • con un pequeño script en python (usando la librería pyPdf) "mezclo" el contenido del PDF generado, junto con el "preimpreso" (pongo código de ejemplo base)
  • from pyPdf import PdfFileWriter, PdfFileReader

    output = PdfFileWriter()
    input1 = PdfFileReader(file("PDF/watermark_K1.pdf", "rb"))

    # añado la página 0 desde input1 añadiendo el preimpreso desde otro pdf:
    page0 = input1.getPage(0)
    watermark = PdfFileReader(file("PDF/00001282.pdf", "rb"))
    page0.mergePage(watermark.getPage(0))
    output.addPage(page0)
    # finalmente, escribo "output" a document-output.pdf
    outputStream = file("/home/cnova/PDF/document-output.pdf", "wb")
    output.write(outputStream)
    outputStream.close()

  • envío por FTP el fichero resultante.
El problema con este método es que Alfresco es incapaz de extraer el texto del PDF que me genera CUPS-PDF. Para mi no es problema puesto que no necesito que lo haga, puesto que lo que interesa del PDF en sí son los metadatos asociados que tiene para poder realizar búsquedas y recuperar ese documento.

Espero que le sirva a alguien.

Saludos,