Combinar / Concatenar PDFs SAP ABAP.

Añado código de una rutina que permite Combinar Concatenar PDFs dos ficheros PDF en SAP ABAP.

Situación:

Se genera un fichero PDF en el directorio con factura, necesitamos que en ese PDF a parte de la factura también esté a renglón seguido el Albarán, pues debe quedar un único fichero que recibirá el destinatario con todos los documentos.

PDF.1 Está alojado en un directorio de AL11.

PDF.2 Es un anexo (Business Document) de una Entrega.

Tenemos que conseguir tener ambos ficheros en tablas internas y convertir a formato XSTRING, con este formato podremos usar la clase CL_RSPO_PDF_MERGE la cual nos permitirá combinarlos, solo hay que ir añadiendo documentos con el método add_document y una vez estén todos usar el método merge_document.

En el tratamiento de ficheros es muy importante el formato de las tablas internas donde se vuelquen.

Para recuperar el fichero de la Entrega usaremos la función ARCHIVOBJECT_GET_TABLE que nos permitirá obtenerlo en binario dentro de una tabla interna lo cual nos obliga a usar la función SCMS_BINARY_TO_XSTRING para convertir binario a XSTRING necesario para el uso de la clase/métodos.

El segundo fichero lo tenemos en el servidor por lo que lo recuperaremos a través de un OPEN DATASET, importante utilizar la sentencia FOR INPUT IN BINARY MODE MESSAGE para traerlo al formato correcto.

Una vez lo ficheros en tablas es cuestión de usar los métodos ADD_DOCUMENT para ir adicionando los documentos y una vez tenemos todos los documentos añadidos usamos MERGE_DOCUMENTS para combinarlos y que nos quede un fichero único con todos los anexos.

He subido un código de ejemplo para que se puedan ver las declaraciones y el tratamiento.

Combinar Concatenar PDFs SAP ABAP.

Adjunto rutina.  Pdf_merged_rutina

CL_RSPO_PDF_MERGE Combinar Concatenar PDFs SAP ABAP

Para más artículos de interés sobre SAP visita:
https://setevalapinsap.com

Enlace de interés sobre este tema:
https://answers.sap.com/questions/10623366/how-to-merge-archived-pdf-files-in-one-file.html

Espero que os sirva saludos!

1+
Etiquetas:, ,

Un comentario

Añadir un comentario