参考标准程序RSPO_TEST_MERGE_PDF_FILES
*--合并PDF
data: pdf_merger type ref to cl_rspo_pdf_merge.
data: ex type ref to cx_rspo_pdf_merge, lv_ex_txt type string.
data: rc type i value 0.
data: docindex type i value 0, errordoc type xstring.
try.
create object pdf_merger.
catch cx_rspo_pdf_merge into ex.
lv_ex_txt = ex->get_text( ).
write: / lv_ex_txt color col_negative.
rc = 1.
return.
endtry.
PDF_MERGER->ADD_DOCUMENT( 文件流 ).
PDF_MERGER->ADD_DOCUMENT( 文件流 ).
PDF_MERGER->MERGE_DOCUMENTS( IMPORTING MERGED_DOCUMENT = MERGED_DOCUMENT RC = RC ).
IF RC <> 0.
PDF_MERGER->GET_ERR_DOC_INDEX( IMPORTING INDEX = DOCINDEX ).
PDF_MERGER->GET_DOCUMENT( EXPORTING INDEX = DOCINDEX IMPORTING DOCUMENT = ERRORDOC ).
ENDIF.
CLEAR PDF_MERGER.
*--下载PDF
perform put_merged_file using merged_document.
form put_merged_file using merged_document type xstring.
data: bin_tab type standard table of tabl1024.
data: lo_gui type ref to cl_gui_frontend_services.
data: path type string, fullpath type string.
data: length type i.
data: filter type string, uact type i, name type string.
DATA:cmd(2000) type c.
create object lo_gui.
call function 'SCMS_XSTRING_TO_BINARY'
exporting
buffer = merged_document
importing
output_length = length
tables
binary_tab = bin_tab.
call method lo_gui->file_save_dialog
exporting
default_extension = 'pdf'
default_file_name = 'merged.pdf'
file_filter = filter
changing
filename = name
path = path
fullpath = fullpath
user_action = uact.
if uact = lo_gui->action_cancel.
exit.
endif.
lo_gui->gui_download( exporting
filename = fullpath
filetype = 'BIN'
bin_filesize = length
changing
data_tab = bin_tab ).