Print PDF Forms Batch Mode
Print PDF Forms Batch Mode
Job open:
FORM open_job.
DATA: fp_outputparams TYPE sfpoutputparams.
DATA: ls_params TYPE pri_params.
fp_outputparams-reqimm = 'X'.
fp_outputparams-copies = ls_params-prcop.
fp_outputparams-device = 'PRINTER'.
fp_outputparams-preview = ' '.
fp_outputparams-nodialog = 'X'.
fp_outputparams-reqnew = 'X'.
fp_outputparams-connection = cl_fp=>get_ads_connection( ).
fp_outputparams-dest = ls_params-pdest.
fp_outputparams-reqfinal = 'X'.
fp_outputparams-getpdf = 'M'.
fp_outputparams-assemble = 'X'.
fp_outputparams-bumode = 'M'. " this is bundle mode
Print:
FORM print.
DATA:
ls_function TYPE rs38l_fnam,
lp_interfacetype TYPE fpinterfacetype,
lp_outputparams TYPE sfpoutputparams,
lp_docparams TYPE sfpdocparams,
lp_formoutput TYPE fpformoutput,
lv_errstr TYPE string,
lo_error TYPE REF TO cx_root..
ADD 1 TO gv_index.
TRY.
lp_docparams-langu = sy-langu.
Job close:
FORM close_job.
ELSE.
PERFORM retrieve_pdf_table USING gv_index
ls_result-remaining_pages
CHANGING gt_result.
READ TABLE gt_result INTO ls_result2 INDEX 1.
l_dest = ls_params-pdest.
CALL FUNCTION 'ADS_CREATE_PDF_SPOOLJOB'
EXPORTING
dest = l_dest
pages = ls_result2-pages
pdf_data = ls_result2-content
immediate_print = 'X'
IMPORTING
spoolid = l_spoolid
EXCEPTIONS
no_data = 1
not_pdf = 2
wrong_devtype = 3
operation_failed = 4
cannot_write_file = 5
device_missing = 6
no_such_device = 7
OTHERS = 8.
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM.