sap smartforms output save as pdf file

ABAP code : To save smartforms output as PDF file


REPORT ZCHEQUE_PRINT.

DATA :  FM_NAME TYPE RS38L_FNAM,
        CONTROL_PARAMETERS  TYPE  SSFCTRLOP,
        OUTPUT_OPTIONS  TYPE SSFCOMPOP,
        JOB_OUTPUT_INFO TYPE  SSFCRESCL.

types : begin of tp_itab,
         name(50),
         date(8),
         amt(17),
        end of tp_itab.

data : gt_itab type STANDARD TABLE OF tp_itab,
       gs_itab type tp_itab.

data : gv_file type string,
       gv_cnt type i,
       gv_cnt2 type i.

data : IT_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,
       IT_PDF_TAB LIKE TLINE OCCURS 0 WITH HEADER LINE,
       LV_BIN_FILESIZE TYPE I, " Binary File Size
       LV_FILE_NAME    TYPE STRING,
       LV_FILE_PATH    TYPE STRING,
       LV_FULL_PATH    TYPE STRING.


SELECTION-SCREEN begin of BLOCK b1 WITH FRAME TITLE text-001.
 PARAMETERS : IP_NAME TYPE CHAR100,
              IP_CDATE  TYPE  SYDATUM,
              IP_AMT  TYPE  PC207-BETRG.
 SELECTION-SCREEN skip.
 PARAMETERS : P_FILE    TYPE IBIPPARMS-PATH. "OBLIGATORY.
SELECTION-SCREEN end of BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

  CALL FUNCTION 'F4_FILENAME'
   EXPORTING
     PROGRAM_NAME        = SYST-CPROG
*     DYNPRO_NUMBER       = SYST-DYNNR
*     FIELD_NAME          = ' '
   IMPORTING
     FILE_NAME           = P_FILE
            .



START-OF-SELECTION.

    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        FORMNAME                 = 'ZCHEQUE_PRINT1'
*       VARIANT                  = ' '
*       DIRECT_CALL              = ' '
     IMPORTING
       FM_NAME                  = FM_NAME
     EXCEPTIONS
       NO_FORM                  = 1
       NO_FUNCTION_MODULE       = 2
       OTHERS                   = 3
              .
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.


 IF FM_NAME IS NOT INITIAL.



    CONTROL_PARAMETERS-PREVIEW    = 'X'.
    CONTROL_PARAMETERS-GETOTF    = 'X'.   "to get otf data

    CONTROL_PARAMETERS-NO_DIALOG  = 'X'.
    OUTPUT_OPTIONS-TDDEST         = 'LP01'.

  CALL FUNCTION FM_NAME             "'/1BCDWB/SF00000259'
   EXPORTING
*     ARCHIVE_INDEX              =
*     ARCHIVE_INDEX_TAB          =
*     ARCHIVE_PARAMETERS         =
     CONTROL_PARAMETERS         = CONTROL_PARAMETERS
*     MAIL_APPL_OBJ              =
*     MAIL_RECIPIENT             =
*     MAIL_SENDER                =
     OUTPUT_OPTIONS             = OUTPUT_OPTIONS
     USER_SETTINGS              = 'X'
     IP_NAME                    = IP_NAME
     IP_CDATE                   = IP_CDATE
     IP_AMOUNT                  = IP_AMT
   IMPORTING
*     DOCUMENT_OUTPUT_INFO       =
     JOB_OUTPUT_INFO            = JOB_OUTPUT_INFO
*     JOB_OUTPUT_OPTIONS         =
   EXCEPTIONS
     FORMATTING_ERROR           = 1
     INTERNAL_ERROR             = 2
     SEND_ERROR                 = 3
     USER_CANCELED              = 4
     OTHERS                     = 5
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.


*  CALL FUNCTION 'HR_IT_DISPLAY_WITH_PDF'
**    EXPORTING
**      IV_PDF          =
*    TABLES
*      OTF_TABLE       = JOB_OUTPUT_INFO-OTFDATA.

     IT_OTF[] = JOB_OUTPUT_INFO-OTFDATA..

    CALL FUNCTION 'CONVERT_OTF'
     EXPORTING
       FORMAT                      = 'PDF'
       MAX_LINEWIDTH               = 132
*       ARCHIVE_INDEX               = ' '
*       COPYNUMBER                  = 0
*       ASCII_BIDI_VIS2LOG          = ' '
*       PDF_DELETE_OTFTAB           = ' '
*       PDF_USERNAME                = ' '
*       PDF_PREVIEW                 = ' '
*       USE_CASCADING               = ' '
     IMPORTING
       BIN_FILESIZE                = LV_BIN_FILESIZE
*       BIN_FILE                    =
      TABLES
        OTF                         = it_otf
        LINES                       = IT_PDF_TAB
     EXCEPTIONS
       ERR_MAX_LINEWIDTH           = 1
       ERR_FORMAT                  = 2
       ERR_CONV_NOT_POSSIBLE       = 3
       ERR_BAD_OTF                 = 4
       OTHERS                      = 5
              .
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.

    LV_FILE_NAME = 'Demo sf file save 123.pdf'.

    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
      EXPORTING
        WINDOW_TITLE              = 'Select file location'
        DEFAULT_EXTENSION         = '.pdf'
        DEFAULT_FILE_NAME         = LV_FILE_NAME
*        WITH_ENCODING             =
*        FILE_FILTER               =
*        INITIAL_DIRECTORY         =
*        PROMPT_ON_OVERWRITE       = 'X'
      CHANGING
        FILENAME                  = LV_FILE_NAME
        PATH                      = LV_FILE_PATH
        FULLPATH                  = LV_FULL_PATH
*        USER_ACTION               =
*        FILE_ENCODING             =
      EXCEPTIONS
        CNTL_ERROR                = 1
        ERROR_NO_GUI              = 2
        NOT_SUPPORTED_BY_GUI      = 3
        INVALID_DEFAULT_FILE_NAME = 4
        OTHERS                    = 5
            .
    IF SY-SUBRC <> 0.
*     Implement suitable error handling here
    ENDIF.


    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
*       BIN_FILESIZE                    =
        FILENAME                        = LV_FULL_PATH
       FILETYPE                        = 'BIN'
*       APPEND                          = ' '
*       WRITE_FIELD_SEPARATOR           = ' '
*       HEADER                          = '00'
*       TRUNC_TRAILING_BLANKS           = ' '
*       WRITE_LF                        = 'X'
*       COL_SELECT                      = ' '
*       COL_SELECT_MASK                 = ' '
*       DAT_MODE                        = ' '
*       CONFIRM_OVERWRITE               = ' '
*       NO_AUTH_CHECK                   = ' '
*       CODEPAGE                        = ' '
*       IGNORE_CERR                     = ABAP_TRUE
*       REPLACEMENT                     = '#'
*       WRITE_BOM                       = ' '
*       TRUNC_TRAILING_BLANKS_EOL       = 'X'
*       WK1_N_FORMAT                    = ' '
*       WK1_N_SIZE                      = ' '
*       WK1_T_FORMAT                    = ' '
*       WK1_T_SIZE                      = ' '
*       WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
*       SHOW_TRANSFER_STATUS            = ABAP_TRUE
*       VIRUS_SCAN_PROFILE              = '/SCET/GUI_DOWNLOAD'
*     IMPORTING
*       FILELENGTH                      =
      TABLES
        DATA_TAB                        = IT_PDF_TAB
*       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.
* Implement suitable error handling here
    ENDIF.



  ENDIF.
END-OF-SELECTION.










Post a Comment

0 Comments

Total Pageviews