소스는 여기 저기 있는거 참고해서
PDF화일은 만들어 지는데 열리지가 안습니다.
OTF로 변환된 내용을 보면 잘 나오는것도 있고
이상하게 나오는것도 있더라고요
이게 이상하게 나오는것이 잘못된건지..아님..원래 그렇게 나와서
변환이 되는건지 모르겠지만..결론적으로 PDF화일이 잘못됐다고 열리지가 않네요.
SAP SCRIPT를 PDF로 변환 성공하신소스있으면 부탁드립니다.
그리고 혹시 PDF화일이 버전에 따라 다를수도 있나요?
그것도 궁금하고..원인이 뭔지 도저히 모르겠네요
* Open your usual sapscript specifying that the output will be OTF
ITCPO-TDGETOTF = 'X'.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
DEVICE = 'PRINTER'
DIALOG = SPACE
FORM = 'Z_MEDRUCK'
LANGUAGE = SY-LANGU
OPTIONS = ITCPO
EXCEPTIONS
CANCELED = 1
DEVICE = 2
FORM = 3
OPTIONS = 4
UNCLOSED = 5
MAIL_OPTIONS = 6
ARCHIVE_ERROR = 7
INVALID_FAX_NUMBER = 8
MORE_PARAMS_NEEDED_IN_BATCH = 9
SPOOL_ERROR = 10
CODEPAGE = 11
OTHERS = 12.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'ELEM2'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
* WINDOW = '.'
* ELEMENT = '............'
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
BAD_PAGEFORMAT_FOR_PRINT = 7
SPOOL_ERROR = 8
CODEPAGE = 9
OTHERS = 10.
* Closing the Sapscript, we save data (OTF) in a table
CALL FUNCTION 'CLOSE_FORM'
TABLES
OTFDATA = T_OTFDATA
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 4
CODEPAGE = 5
OTHERS = 6.
** Move OTF data to another table with lenght 255
* LOOP AT T_OTFDATA.
* CONCATENATE T_OTFDATA-TDPRINTCOM T_OTFDATA-TDPRINTPAR INTO T_OTFDATA2
*.
* APPEND T_OTFDATA2.
* ENDLOOP.
* CONVERT_OTF_2_PDF
** CONVERT_OTFSPOOLJOB_2_PDF
* DATA DOC LIKE TABLE OF DOCS.
*
*
* CALL FUNCTION 'CONVERT_OTF_2_PDF'
* IMPORTING
* BIN_FILESIZE = BINFILESIZE
* TABLES
* OTF = T_OTFDATA
* DOCTAB_ARCHIVE = DOC
* LINES = T_PDFDATA.
*
* CALL FUNCTION 'GUI_DOWNLOAD'
* EXPORTING
* BIN_FILESIZE = BINFILESIZE
* FILENAME = 'D:test.pdf'
* FILETYPE = 'BIN'
* TABLES
* DATA_TAB = T_PDFDATA.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
* MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ' '
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ' '
* PDF_DELETE_OTFTAB = ' '
IMPORTING
BIN_FILESIZE = BINFILESIZE
* BIN_FILE =
TABLES
OTF = T_OTFDATA
* OTF = T_OTFDATA2
LINES = T_PDFDATA
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5 .
** Download on local directory
* CALL FUNCTION 'WS_DOWNLOAD'
* EXPORTING
* BIN_FILESIZE = BINFILESIZE
* FILENAME = 'D:test.pdf'
* FILETYPE = 'BIN'
* TABLES
* DATA_TAB = T_PDFDATA.
DATA: FILE_SIZE TYPE I.
* Download on local directory
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = BINFILESIZE
FILENAME = 'D:testNEW.pdf'
FILETYPE = 'BIN'
* TABLES
* DATA_TAB = T_OTFDATA2.
IMPORTING
FILELENGTH = FILE_SIZE
TABLES DATA_TAB = T_PDFDATA
* 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 .
--> %PDF% file을 찾을 수 없다는 Message 보일 경우 CALL FUNCTION 'CONVERT_OTF' Funcion 이하 막아 주시고
첨부 Function을 넣어 작업해 보세요.
첨부 Function 분석 해 보면 하위 작업이 모두 포함되어져 있네요.