Source: SAP Community
Summary: Converting the smartform to PDF is process of 3 simple steps.
- Calling the Smart form, then it returns the OTF data in Return.
- Converting the OTF data into required format using the Function Module CONVERT_OTF_2_PDF.
- Download the File
*&---------------------------------------------------------------------* *& Report ZTEST_NREDDY_PDF *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZTEST_NREDDY_PDF. * Internal table declaration DATA: it_otf TYPE STANDARD TABLE OF itcoo, it_docs TYPE STANDARD TABLE OF docs, it_lines TYPE STANDARD TABLE OF tline. * Declaration of local variables. DATA: st_job_output_info TYPE ssfcrescl, st_document_output_info TYPE ssfcrespd, st_job_output_options TYPE ssfcresop, st_output_options TYPE ssfcompop, st_control_parameters TYPE ssfctrlop, v_len_in TYPE so_obj_len, v_language TYPE sflangu VALUE 'E', v_e_devtype TYPE rspoptype, v_bin_filesize TYPE i, v_name TYPE string, v_path TYPE string, v_fullpath TYPE string, v_filter TYPE string, v_uact TYPE i, v_guiobj TYPE REF TO cl_gui_frontend_services, v_filename TYPE string, v_fm_name TYPE rs38l_fnam. CONSTANTS c_formname TYPE tdsfname VALUE 'ZTEST'. CALL FUNCTION 'SSF_GET_DEVICE_TYPE' EXPORTING i_language = v_language i_application = 'SAPDEFAULT' IMPORTING e_devtype = v_e_devtype. st_output_options-tdprinter = v_e_devtype. st_control_parameters-no_dialog = 'X'. st_control_parameters-getotf = 'X'. *.................GET SMARTFORM FUNCTION MODULE NAME.................* CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = c_formname IMPORTING fm_name = v_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. *...........................CALL SMARTFORM............................* CALL FUNCTION v_fm_name EXPORTING control_parameters = st_control_parameters output_options = st_output_options IMPORTING document_output_info = st_document_output_info job_output_info = st_job_output_info job_output_options = st_job_output_options EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. *.........................CONVERT TO OTF TO PDF.......................* CALL FUNCTION 'CONVERT_OTF_2_PDF' IMPORTING bin_filesize = v_bin_filesize TABLES otf = st_job_output_info-otfdata doctab_archive = it_docs lines = it_lines EXCEPTIONS err_conv_not_possible = 1 err_otf_mc_noendmarker = 2 OTHERS = 3. *........................GET THE FILE NAME TO STORE....................* CONCATENATE 'smrt' '.pdf' INTO v_name. CREATE OBJECT v_guiobj. CALL METHOD v_guiobj->file_save_dialog EXPORTING default_extension = 'pdf' default_file_name = v_name file_filter = v_filter CHANGING filename = v_name path = v_path fullpath = v_fullpath user_action = v_uact. IF v_uact = v_guiobj->action_cancel. EXIT. ENDIF. *..................................DOWNLOAD AS FILE....................* MOVE v_fullpath TO v_filename. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING bin_filesize = v_bin_filesize filename = v_filename filetype = 'BIN' TABLES data_tab = it_lines EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6 header_not_allowed = 7 separator_not_allowed = 8 filesize_not_allowed = 9 header_too_long = 10 dp_error_create = 11 dp_error_send = 12 dp_error_write = 13 unknown_dp_error = 14 access_denied = 15 dp_out_of_memory = 16 disk_full = 17 dp_timeout = 18 file_not_found = 19 dataprovider_exception = 20 control_flush_error = 21 OTHERS = 22.
*------------------------------------------------------------------------
Or other option
How to convert smartform output into pdf? There is a way to download smartform in PDF format. Please do the following: 1. Print the smartform to the spool. 2. Note the spool number. 3. Download a PDF file (Acrobat Reader) version of the spool by running Program RSTXPDFT4 and entering the noted spool number. or use this program:
&--------------------------------------------------------------------- *& Report ZPDF_DNLD_TEST2 * *& * &--------------------------------------------------------------------- *& DEVK904540 * *& * &--------------------------------------------------------------------- REPORT ZPDF_DNLD_TEST2 . data: i_otf LIKE itcoo OCCURS 100 WITH HEADER LINE, i_pdf LIKE tline OCCURS 100 WITH HEADER LINE. data: op_option type SSFCTRLOP, job_output type SSFCRESCL. op_option-getotf = 'X'. CALL FUNCTION '/1BCDWB/SF00000005' EXPORTING ARCHIVE_INDEX = ARCHIVE_INDEX_TAB = ARCHIVE_PARAMETERS = CONTROL_PARAMETERS = op_option MAIL_APPL_OBJ = MAIL_RECIPIENT = MAIL_SENDER = OUTPUT_OPTIONS = USER_SETTINGS = 'X' itab1 = itab1 IMPORTING DOCUMENT_OUTPUT_INFO = JOB_OUTPUT_INFO = job_output JOB_OUTPUT_OPTIONS = EXCEPTIONS FORMATTING_ERROR = 1 INTERNAL_ERROR = 2 SEND_ERROR = 3 USER_CANCELED = 4 OTHERS = 5 . IF sy-subrc 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'CONVERT_OTF' EXPORTING FORMAT = 'PDF' MAX_LINEWIDTH = 132 ARCHIVE_INDEX = ' ' COPYNUMBER = 0 ASCII_BIDI_VIS2LOG = ' ' PDF_DELETE_OTFTAB = ' ' IMPORTING BIN_FILESIZE = BIN_FILE = TABLES otf = job_output-otfdata lines = i_pdf EXCEPTIONS ERR_MAX_LINEWIDTH = 1 ERR_FORMAT = 2 ERR_CONV_NOT_POSSIBLE = 3 ERR_BAD_OTF = 4 OTHERS = 5 . IF sy-subrc 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING BIN_FILESIZE = filename = 'c:\test_pdf_sf.pdf' FILETYPE = 'BIN' tables data_tab = i_pdf FIELDNAMES = EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6 HEADER_NOT_ALLOWED = 7 SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED = 9 HEADER_TOO_LONG = 10 DP_ERROR_CREATE = 11 DP_ERROR_SEND = 12 DP_ERROR_WRITE = 13 UNKNOWN_DP_ERROR = 14 ACCESS_DENIED = 15 DP_OUT_OF_MEMORY = 16 DISK_FULL = 17 DP_TIMEOUT = 18 FILE_NOT_FOUND = 19 DATAPROVIDER_EXCEPTION = 20 CONTROL_FLUSH_ERROR = 21 OTHERS = 22 . IF sy-subrc 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
No comments:
Post a Comment