Escolar Documentos
Profissional Documentos
Cultura Documentos
Pasos a seguir:
1. Se recorre la tabla interna donde estén los datos de los elementos (pedidos, facturas, etc.) que queremos
mostrar vía Adobe Form:
ENDLOOP.
2. EN LA PRIMERA ITERACIÓN de la tabla (nuestro primer documento), debemos abrir un job, pasándole estos
datos (o muy similares):
ls_outputparams-copies = 1.
ls_outputparams-bumode = '-'.
ls_outputparams-suffix1 = 'SPDF'.
ls_outputparams-suffix2 = sy-uname.
ls_outputparams-arcmode = 1.
IF sy-subrc <> 0.
ENDIF.
3. EN CADA ITERACIÓN llamamos a la función que nos dice el nombre del formulario, como siempre:
4. EN CADA ITERACIÓN llamamos al Adobe Form. Traemos de vuelta la estructura ls_pdf_file rellena.
ls_docparams-langu = i_spras.
IF sy-subrc = 0.
ENDIF.
6. EN LA ÚLTIMA ITERACIÓN de la tabla (nuestro último documento a imprimir), lo primero que hacemos es
cerrar el job:
CALL FUNCTION 'FP_JOB_CLOSE'
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
7. A continuación creamos el objeto pdf_merger, recorremos la table tab_pdf (que hemos ido alimentando en
cada paso 5) y añadimos cada documento al objeto recién creado.
pdf_merger->merge_documents(
IMPORTING merged_document = merged_document
rc = rc ).
IF rc = 0.
APPEND merged_document TO tab_pdf_aux.
ENDIF.
9. Sustituimos la tabla original tab_pdf por el contenido de la nueva tabla tab_pdf_aux, leemos su primer índice
(el único que tendremos ahora mismo) y cargamos el contenido en la tabla gt_content.
tab_pdf[] = tab_pdf_aux[].
IF sy-subrc = 0.
gt_content = ls_tab.
APPEND gt_content.
ENDIF.
10. Ahora solo queda descargar el PDF, en este tutorial hemos usado la función GUI_DOWNLOAD, aunque se
pueden utilizar otras opciones. Para poder ejecutar correctamente esta función, tenemos que convertir el
contenido de la tabla gt_content a formato BIN, y lo guardamos en otra tabla llamada gt_data.
11. Finalmente, procedemos a la descarga del archivo PDF en el ordenador, en la ruta indicada en la declaración
de la variable lv_filename. Si el proceso termina correctamente, tendremos un único archivo pdf guardado
en el PC, que contiene todos nuestros formularios, uno detrás de otro .
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
etc.