Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Sapscript to pdf

Former Member
0 Likes
396

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

1 REPLY 1
Read only

Former Member
0 Likes
336

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