Skip to Content
avatar image
Former Member

Smartform to print as PDF

Hi Experts,

I have a requirement to Print  and  download a smartform in a pdf fromat..Pls suggest some code.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    avatar image
    Former Member
    Oct 26, 2012 at 11:11 AM

    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_PDF

    ·         *&

    ·         *&---------------------------------------------------------------------*

    ·         *&

    ·         *&

    ·         *&---------------------------------------------------------------------*

    ·         REPORT  ZTEST_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.

    ·Collapse All Collapsing… Expanding… Expand All

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Oct 26, 2012 at 11:14 AM

    Hi Becky,

    In SAP You hav to configure a PDF printer in SPAD t. code as device type PDF1.

    As work around If you have Adobe Acrobat Professional software installed at desktop then during the printing you select PDF printer then it will convert your smart form in PDF format and save it as PDF file after that you can print the same.

    Regards

    Ganesh Datt Tiwari

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Becky,

      I think here you need not to do any coding. Sap has provided standard solution for this.

      All you need to do is to write pdf! as transaction code and press enter when you are displaying your smartform in transaction code input area.

      It will automatically be converted into pdf with all the options like save print etc.

      Rgds,

      Sandeep Katoch