‎2006 Jun 03 11:04 AM
Hi friends,
I have written a pgm to convert sapscript to pdf. When I execute the pgm, it creates a pdf file but when i try to open the file, its gives me error saying that the format is wrong. can anyone pls help me as what changes i should make in the prgm.
here goes my code,
Declaration.
DATA: OTFDATA LIKE SOLI OCCURS 0 WITH HEADER LINE.
DATA: PDFDATA LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA: PDF_FILESIZE LIKE SOOD-OBJLEN.
DATA: BIN_FILESIZE TYPE I.
DATA: w_otf TYPE itcoo. "For OTF
DATA: w_pdf TYPE solisti1. "For PDF
DATA: i_content_txt TYPE soli_tab. "Content
DATA: w_transfer_bin TYPE sx_boolean. "Content
DATA: i_content_bin TYPE solix_tab, "Content
i_objhead TYPE soli_tab.
DATA: v_len_in TYPE so_obj_len,
v_size TYPE i.
DATA: w_res TYPE itcpp."SAPscript output
DATA: i_otf TYPE STANDARD TABLE OF itcoo. "For OTF data
the internal table it_bill consists of the data which is the output of the sapscript.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
APPLICATION = 'TX'
ARCHIVE_INDEX =
ARCHIVE_PARAMS =
DEVICE = 'PRINTER'
DIALOG = 'X'
FORM = 'ZSALEPERF'
LANGUAGE = SY-LANGU
OPTIONS =
MAIL_SENDER =
MAIL_RECIPIENT =
MAIL_APPL_OBJECT =
RAW_DATA_INTERFACE = '*'
SPONUMIV =
IMPORTING
LANGUAGE =
NEW_ARCHIVE_PARAMS =
RESULT = W_RES
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
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT_BILL .
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = '111'
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'MAIN'
IMPORTING
PENDING_LINES =
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
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT = W_RES
RDI_RESULT =
TABLES
OTFDATA = I_OTF
EXCEPTIONS
UNOPENED = 1
BAD_PAGEFORMAT_FOR_PRINT = 2
SEND_ERROR = 3
SPOOL_ERROR = 4
CODEPAGE = 5
OTHERS = 6
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT i_otf INTO w_otf.
CONCATENATE w_otf-tdprintcom w_otf-tdprintpar
INTO w_pdf.
APPEND w_pdf TO i_content_txt.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
FORMAT_SRC = 'OTF'
FORMAT_DST = 'PDF'
ADDR_TYPE =
DEVTYPE =
FUNCPARA =
CHANGING
TRANSFER_BIN = W_TRANSFER_BIN
CONTENT_TXT = I_CONTENT_TXT
CONTENT_BIN = I_CONTENT_BIN
OBJHEAD = I_OBJHEAD
LEN = V_LEN_IN
EXCEPTIONS
ERR_CONV_FAILED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
v_size = v_len_in.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = V_SIZE
FILENAME = 'D:\mypdf.pdf'
FILETYPE = 'BIN'
TABLES
DATA_TAB = i_content_bin
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6.
*
TIA,
sinthu
‎2006 Jun 03 11:42 AM
Hi
I run this report and it worked fine:
DATA: OTFDATA LIKE SOLI OCCURS 0 WITH HEADER LINE.
DATA: PDFDATA LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA: PDF_FILESIZE LIKE SOOD-OBJLEN.
DATA: BIN_FILESIZE TYPE I.
DATA: W_OTF TYPE ITCOO. "For OTF
DATA: W_PDF TYPE SOLISTI1. "For PDF
DATA: I_CONTENT_TXT TYPE SOLI_TAB. "Content
DATA: W_TRANSFER_BIN TYPE SX_BOOLEAN. "Content
DATA: I_CONTENT_BIN TYPE SOLIX_TAB, "Content
I_OBJHEAD TYPE SOLI_TAB.
DATA: V_LEN_IN TYPE SO_OBJ_LEN,
V_SIZE TYPE I.
DATA: W_RES TYPE ITCPP."SAPscript output
DATA: I_OTF TYPE STANDARD TABLE OF ITCOO. "For OTF data
DATA ITCPO LIKE ITCPO.
START-OF-SELECTION.
ITCPO-TDGETOTF = 'X'.
CALL FUNCTION 'OPEN_FORM'
EXPORTING
FORM = 'ZFUFFA2'
OPTIONS = ITCPO
IMPORTING
RESULT = W_RES.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'START'
WINDOW = 'MAIN'.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT = W_RES
TABLES
OTFDATA = I_OTF.
LOOP AT I_OTF INTO W_OTF.
CONCATENATE W_OTF-TDPRINTCOM W_OTF-TDPRINTPAR
INTO W_PDF.
APPEND W_PDF TO I_CONTENT_TXT.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
FORMAT_SRC = 'OTF'
FORMAT_DST = 'PDF'
CHANGING
TRANSFER_BIN = W_TRANSFER_BIN
CONTENT_TXT = I_CONTENT_TXT
CONTENT_BIN = I_CONTENT_BIN
OBJHEAD = I_OBJHEAD
LEN = V_LEN_IN
EXCEPTIONS
ERR_CONV_FAILED = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
V_SIZE = V_LEN_IN.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = V_SIZE
FILENAME = 'c:\mypdf.pdf'
FILETYPE = 'BIN'
TABLES
DATA_TAB = I_CONTENT_BIN
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6.
Max