본문 바로가기

ABAP 물타기/Smart Forms

Smart Forms : PDF

  • Create Date   : 2010-06-15
  • Change Date : 2010-06-15

잡담 -ㅂ-;

Smart Forms 결과를 PDF 파일로 변환하는 부분이다.
두 가지 문제가 있는데,
여전히 프린트 다이얼로그가 나온다는 것과 한글이 깨지는것이다.



Source

** pdf
data : lt_otfdata type ssfcrescl,
       control_parameter type ssfctrlop,
       lt_pdf_tab like tline occurs 0 with header line,
       lt_otf type itcoo occurs 0 with header line,
       w_filesize type i,
       w_bin_filesize type i.


중략...

  elseif p_pdf = 'X'.
  
  control_parameter-getotf = 'X'.

  CALL FUNCTION fm_name
    EXPORTING
        mart_name = mart_name
        mart_loc  = mart_loc
        zcard = zcard
        itab  = itab
        itab_b = itab_b
        control_parameters = control_parameter  """
    importing
      job_output_info = lt_otfdata """
    EXCEPTIONS
      formatting_error = 1
      internal_error   = 2
      send_error       = 3
      user_canceled    = 4
      OTHERS           = 5
      .

  lt_otf[] = lt_otfdata-otfdata[].

  CALL FUNCTION 'CONVERT_OTF'
   EXPORTING
     FORMAT                      = 'PDF'
*     MAX_LINEWIDTH               = 132
*     ARCHIVE_INDEX               = ' '
*     COPYNUMBER                  = 0
*     ASCII_BIDI_VIS2LOG          = ' '
*     PDF_DELETE_OTFTAB           = ' '
*     PDF_USERNAME                = ' '
   IMPORTING
     BIN_FILESIZE                = w_bin_filesize
*     BIN_FILE                    =
    TABLES
      OTF                         = lt_otf[]
      LINES                       = lt_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.
* 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                    = w_bin_filesize
      FILENAME                        = 'C:\SMARTFORMS_RESULT.PDF'
      FILETYPE                        = 'BIN'
*   IMPORTING
*     FILELENGTH                      =
    TABLES
      DATA_TAB                        = lt_pdf_tab
            .
  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.




Result

한글이 깨진다. ㅜ ㅜ






'ABAP 물타기 > Smart Forms' 카테고리의 다른 글

스마트폼즈 여러 개 출력(멀티)  (0) 2023.11.15
Smart Forms : Basic (Hello Smart Forms!)  (2) 2010.06.15