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

script to pdf

Former Member
0 Likes
1,198

can anyone tell me the code for converting a script into the pdf format n then mail it as an attachment??

i am in urgent need of this.

thanking u in anticipation.

regards,

supriya.

8 REPLIES 8
Read only

Former Member
0 Likes
938
Read only

anversha_s
Active Contributor
0 Likes
938

hi,

Visit this link for SAMple code of SAPSCRIPT to PDF.:

http://www.sapgenie.com/abap/pdf_creation.htm

and check the following weblog for code samples.

/people/sap.user72/blog/2004/11/10/bsphowto-generate-pdf-output-from-a-bsp

chk this one

http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm

some function modules useful would be

CONVERT_OTF

SO_NEW_DOCUMENT_ATT_SEND_API1 to send mails with attachments

plzz refer to this link..it will solve ur problem

Regards

Anver

Read only

Former Member
0 Likes
938

&----


*& Report ZPAYMENT_PRG

*&

&----


*&

*&SAP-SCRIPT

&----


REPORT ZPAYMENT_PRG_PDF_EMAIL MESSAGE-ID ZMSG NO STANDARD PAGE HEADING.

  • SAP-SCRIPT SALES ORDER .

DATA: BEGIN OF T_VBAP OCCURS 0,

VBELN TYPE VBAP-VBELN ,

POSNR TYPE VBAP-POSNR ,

ARKTX TYPE VBAP-ARKTX ,

NETPR TYPE VBAP-NETPR ,

NETWR TYPE VBAP-NETWR ,

GEWEI TYPE VBAP-GEWEI ,

VOLUM TYPE VBAP-VOLUM ,

VOLEH TYPE VBAP-VOLEH ,

MATNR TYPE VBAP-MATNR ,

KWMENG TYPE VBAP-KWMENG ,

WAERK LIKE VBAP-WAERK ,

END OF T_VBAP,

BEGIN OF T_VBRP OCCURS 0,

VBELN LIKE VBRP-VBELN,

VGBEL LIKE VBRP-VGBEL,

AUBEL LIKE VBRP-AUBEL ,

BRGEW LIKE VBRP-BRGEW,

END OF T_VBRP,

BEGIN OF T_TVZBT OCCURS 0 ,

ZTERM LIKE TVZBT-ZTERM ,

VTEXT LIKE TVZBT-VTEXT ,

END OF T_TVZBT ,

BEGIN OF T_LIPS OCCURS 0 ,

VBELN TYPE LIPS-VBELN ,

VGBEL LIKE LIPS-VGBEL ,

VGPOS LIKE LIPS-VGPOS ,

END OF T_LIPS ,

BEGIN OF T_LIKP OCCURS 0,

VBELN LIKE LIKP-VBELN,

KUNNR TYPE LIKP-KUNNR ,

BLDAT LIKE LIKP-BLDAT,

LFDAT LIKE LIKP-LFDAT ,

END OF T_LIKP ,

BEGIN OF T_VBKD OCCURS 0,

VBELN LIKE VBAP-VBELN,

ZTERM LIKE VBKD-ZTERM,

INCO1 LIKE VBKD-INCO1,

INCO2 LIKE VBKD-INCO2 ,

BSTDK LIKE VBKD-BSTDK ,

END OF T_VBKD,

BEGIN OF T_VBRK OCCURS 0 ,

VBELN LIKE VBRK-VBELN ,

WAERK LIKE VBRK-WAERK ,

END OF T_VBRK ,

BEGIN OF T_OUTPUT OCCURS 0 ,

VBELN LIKE VBAP-VBELN ,

POSNR LIKE VBAP-POSNR ,

ARKTX LIKE VBAP-ARKTX ,

NETPR LIKE VBAP-NETPR ,

NETWR LIKE VBAP-NETWR ,

GEWEI LIKE VBAP-GEWEI ,

VOLUM LIKE VBAP-VOLUM ,

VOLEH LIKE VBAP-VOLEH ,

MATNR LIKE VBAP-MATNR ,

KWMENG LIKE VBAP-KWMENG ,

VTEXT LIKE TVZBT-VTEXT ,

VGBEL LIKE LIPS-VGBEL,

VGPOS LIKE LIPS-VGPOS ,

AUBEL LIKE VBRP-AUBEL ,

BRGEW LIKE VBRP-BRGEW,

KUNNR LIKE LIKP-KUNNR,

LFDAT LIKE LIKP-LFDAT ,

BLDAT LIKE LIKP-BLDAT,

ZTERM LIKE VBKD-ZTERM,

INCO1 LIKE VBKD-INCO1,

INCO2 LIKE VBKD-INCO2,

BSTDK LIKE VBKD-BSTDK ,

WAERK LIKE VBAP-WAERK ,

END OF T_OUTPUT .

DATA : L_ARKTX LIKE VBAP-ARKTX ,

V_LEN TYPE I ,

VAR1(10) ,

VAR2(10) ,

VAR3(10) .

PARAMETERS: P_VBELN LIKE VBAP-VBELN.

SELECT VBELN POSNR ARKTX WAERK

NETPR NETWR GEWEI VOLUM VOLEH

MATNR KWMENG

FROM VBAP

INTO CORRESPONDING FIELDS OF TABLE T_VBAP

WHERE VBELN = P_VBELN .

SELECT VBELN ZTERM INCO1

INCO2 BSTDK

FROM VBKD

INTO CORRESPONDING FIELDS OF TABLE T_VBKD

FOR ALL ENTRIES IN T_VBAP

WHERE VBELN = T_VBAP-VBELN .

SELECT VBELN VGBEL VGPOS

FROM LIPS

INTO CORRESPONDING FIELDS OF TABLE T_LIPS

FOR ALL ENTRIES IN T_VBAP

WHERE VGBEL = T_VBAP-VBELN .

IF NOT T_LIPS[] IS INITIAL .

SELECT VBELN KUNNR BLDAT LFDAT

FROM LIKP

INTO CORRESPONDING FIELDS OF TABLE T_LIKP

FOR ALL ENTRIES IN T_LIPS

WHERE VBELN = T_LIPS-VBELN .

SELECT VBELN AUBEL BRGEW VGBEL

FROM VBRP

INTO CORRESPONDING FIELDS OF TABLE T_VBRP

FOR ALL ENTRIES IN T_LIPS

WHERE VGBEL = T_LIPS-VBELN .

ENDIF .

SELECT VBELN WAERK

FROM VBRK

INTO CORRESPONDING FIELDS OF TABLE T_VBRK

FOR ALL ENTRIES IN T_VBRP

WHERE VBELN = T_VBRP-VBELN .

SELECT ZTERM VTEXT

FROM TVZBT

INTO CORRESPONDING FIELDS OF TABLE T_TVZBT

FOR ALL ENTRIES IN T_VBKD

WHERE ZTERM EQ T_VBKD-ZTERM .

LOOP AT T_VBAP .

T_OUTPUT-VBELN = T_VBAP-VBELN .

T_OUTPUT-WAERK = T_VBAP-WAERK .

T_OUTPUT-POSNR = T_VBAP-POSNR .

T_OUTPUT-ARKTX = T_VBAP-ARKTX .

T_OUTPUT-NETPR = T_VBAP-NETPR .

T_OUTPUT-NETWR = T_VBAP-NETWR .

T_OUTPUT-GEWEI = T_VBAP-GEWEI .

T_OUTPUT-VOLUM = T_VBAP-VOLUM .

T_OUTPUT-VOLEH = T_VBAP-VOLEH .

T_OUTPUT-MATNR = T_VBAP-MATNR .

T_OUTPUT-KWMENG = T_VBAP-KWMENG .

L_ARKTX = T_OUTPUT-ARKTX .

*V_LEN = STRLEN( L_ARKTX ) .

SPLIT L_ARKTX AT SPACE INTO VAR1 VAR2 VAR3 .

READ TABLE T_VBKD WITH KEY VBELN = T_VBAP-VBELN .

IF SY-SUBRC = 0 .

T_OUTPUT-ZTERM = T_VBKD-ZTERM .

T_OUTPUT-INCO1 = T_VBKD-INCO1 .

T_OUTPUT-INCO2 = T_VBKD-INCO2 .

T_OUTPUT-BSTDK = T_VBKD-BSTDK .

ENDIF .

READ TABLE T_LIPS WITH KEY VGBEL = T_VBAP-VBELN .

IF SY-SUBRC = 0 .

T_OUTPUT-VGBEL = T_LIPS-VGBEL .

ENDIF .

READ TABLE T_LIKP WITH KEY VBELN = T_LIPS-VBELN .

IF SY-SUBRC = 0 .

T_OUTPUT-KUNNR = T_LIKP-KUNNR .

T_OUTPUT-BLDAT = T_LIKP-BLDAT .

T_OUTPUT-LFDAT = T_LIKP-LFDAT .

ENDIF .

READ TABLE T_VBRP WITH KEY VGBEL = T_LIPS-VBELN .

IF SY-SUBRC = 0 .

T_OUTPUT-AUBEL = T_VBRP-AUBEL .

T_OUTPUT-BRGEW = T_VBRP-BRGEW .

ENDIF .

READ TABLE T_VBRK WITH KEY VBELN = T_VBRP-VBELN .

IF SY-SUBRC = 0 .

T_OUTPUT-WAERK = T_VBRK-WAERK .

ENDIF .

READ TABLE T_TVZBT WITH KEY ZTERM = T_VBKD-ZTERM .

IF SY-SUBRC = 0 .

T_OUTPUT-VTEXT = T_TVZBT-VTEXT .

ENDIF .

APPEND T_OUTPUT .

ENDLOOP .

CALL FUNCTION 'OPEN_FORM'

EXPORTING

FORM = 'ZPAYMENT1'

LANGUAGE = SY-LANGU.

LOOP AT T_OUTPUT .

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'ORD'

WINDOW = 'ORDER'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'DEL'

WINDOW = 'DELIVER'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'MAIN1'

TYPE = 'BODY'

WINDOW = 'MAIN'.

ENDLOOP .

CALL FUNCTION 'CLOSE_FORM'

.

***************************************************************

TABLES: TST05.

DATA: BEGIN OF ITAB OCCURS 0,

TLINE(255),

END OF ITAB.

DATA: BEGIN OF ITAB2 OCCURS 0,

TLINE(255),

END OF ITAB2.

DATA: BEGIN OF ITAB3 OCCURS 0,

TLINE(255),

END OF ITAB3.

DATA: BEGIN OF OTF_TAB OCCURS 0,

TLINE(255),

END OF OTF_TAB.

DATA: LEN_OUT LIKE SOOD-OBJLEN.

DATA: LEN_IN LIKE SOOD-OBJLEN.

DATA: BEGIN OF DATA_SET OCCURS 200,

DATA_LENGTH(5),

PRECOL(1),

DATA_LINE(1000),

END OF DATA_SET.

DATA: BEGIN OF OTF_PAGE OCCURS 200.

INCLUDE STRUCTURE ITCOO.

DATA: END OF OTF_PAGE,

OTF_PAGES TYPE P,

OTF_MAX_PAGES TYPE P VALUE 10.

DATA: BEGIN OF OTF_CONTROL.

INCLUDE STRUCTURE ITCPP.

DATA: END OF OTF_CONTROL,

FORCE_RAW_OTF VALUE ' ',

L100_EXCLUDE(4) VALUE 'OTFJ',

BEGIN OF OTF_PAGE_INDEX OCCURS 20,

LINE_NUM TYPE P,

END OF OTF_PAGE_INDEX,

CUR_OTF_PAGE VALUE 1.

DATA: DATA_SET_LINECOUNT TYPE P,

DATA_SET_MAX_LINES TYPE P VALUE 100000,

DATA_SET_VALID TYPE C VALUE ' ',

DATA_SET_IS_OTF TYPE C VALUE ' ',

DATA_SET_LENGTH(5) TYPE C,

LINE_SPECIAL LIKE DATA_SET-DATA_LINE,

NEED_LINE_SPECIAL TYPE C,

DSN_TYPE(8) TYPE C.

DATA: FCODE(4) TYPE C,

DATE TYPE D,

TIME TYPE T,

RC(10) TYPE C,

ERRMSG(100) TYPE C,

PRINTJOB_CREATED(1) TYPE C,

PRINTJOB_CLEARED(1) TYPE C,

PRINTJOB_LIST(1) TYPE C,

DISPLAY_MODE(1) TYPE C,

LINE_MAX TYPE P VALUE '100000',

NEW_SCREEN_300(1) TYPE C,

MULTI_PRINT_300(1) TYPE C,

PRINT_ALL_300(1) TYPE C,

PRINT_COUNT_300 TYPE I,

SHOW_USER_100 TYPE C VALUE ' ',

ERROR_DISPLAY_LEVEL TYPE C VALUE '9',

NEXT_ERROR_DISPLAY_LEVEL TYPE C,

PREV_ERROR_DISPLAY_LEVEL TYPE C,

START_300(5) TYPE C, END_300(5) TYPE C,

SEP LIKE SY-VLINE,

DEFAULT_PRI,

TSP01_BUF LIKE TSP01,

TSP01_CURLINE LIKE SY-STARO,

TSP01_CURCOL LIKE SY-CUCOL,

TSP01_CURROW LIKE SY-CUROW.

DATA: BEGIN OF DATA_SET_LINE,

DATA_LENGTH(5),

PRECOL(1),

DATA_LINE(1000),

END OF DATA_SET_LINE.

DATA: STATUS LIKE SY-SUBRC.

DATA: WGF_MESSAGE(80).

DATA: H_PATH(20) TYPE C.

DATA: H_MASK(20) TYPE C VALUE ',.pdf ,.pdf. '.

DATA: FILE_NAME(20).

DATA: FILENAME LIKE RLGRAP-FILENAME.

DATA: IMPORT(132).

PARAMETERS: IDENT(5) TYPE C.

PERFORM GET_OTF_TAB.

LOOP AT OTF_PAGE.

OTF_TAB-TLINE = OTF_PAGE.

APPEND OTF_TAB.

ENDLOOP.

CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'

EXPORTING

FORMAT_SRC = 'OTF'

FORMAT_DST = 'PDF'

DEVTYPE = 'ASCIIPRI'

LEN_IN = LEN_IN

IMPORTING

LEN_OUT = LEN_OUT

TABLES

CONTENT_IN = OTF_TAB

CONTENT_OUT = ITAB2

EXCEPTIONS

ERR_CONV_FAILED = 1

OTHERS = 2.

PERFORM GET_PATH USING 'PDF_FILE'.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

FILENAME = 'C:/PDF.PDF'

FILETYPE = 'BIN'

BIN_FILESIZE = LEN_OUT

TABLES

DATA_TAB = ITAB2

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_WRITE_ERROR = 2

INVALID_FILESIZE = 3

INVALID_TABLE_WIDTH = 4

INVALID_TYPE = 5

NO_BATCH = 6

UNKNOWN_ERROR = 7

OTHERS = 8.

&----


*& Form GET_OTF_TAB

&----


FORM GET_OTF_TAB.

DATA: PART(4) VALUE '0001',

BEGIN OF MSG,

A(40),

B(40),

C(40),

END OF MSG.

REFRESH DATA_SET.

DATA_SET_LINECOUNT = 0.

DATA_SET_IS_OTF = ' '.

OTF_PAGES = 0.

REFRESH OTF_PAGE_INDEX.

CALL 'RSPOACSD'.

SELECT * FROM TST05 WHERE DTHREAD = 'X'.

CALL 'RSPOAOSD'

ID 'ID' FIELD IDENT

ID 'TYPE' FIELD TST05-DTYPE

ID 'RECTYP' FIELD 'VYL----'

ID 'RC' FIELD RC

ID 'ERRMSG' FIELD ERRMSG.

STATUS = SY-SUBRC.

IF STATUS = 0.

DSN_TYPE = TST05-DTYPE.

IF DSN_TYPE(3) = 'OTF'.

DATA_SET_IS_OTF = 'X'.

ENDIF.

ENDIF.

IF STATUS <> 24. EXIT. ENDIF.

ENDSELECT.

DATA_SET_VALID = 'X'.

DATA_SET_MAX_LINES = ( LINE_MAX * '1.1' ) + 100.

DO.

CLEAR: DATA_SET_LINE, DATA_SET_LENGTH.

CALL 'RSPOARSD'

ID 'BUFF' FIELD DATA_SET_LINE+5

ID 'DATALEN' FIELD DATA_SET_LENGTH

ID 'RC' FIELD RC

ID 'ERRMSG' FIELD ERRMSG.

STATUS = SY-SUBRC.

IF STATUS = 36.

WHILE STATUS = 36.

CALL 'RSPOACSD'

ID 'RC' FIELD RC

ID 'ERRMSG' FIELD ERRMSG.

ADD 1 TO PART.

IF DATA_SET_IS_OTF = ' '.

CALL 'RSPOAOSD'

ID 'ID' FIELD IDENT

ID 'TYPE' FIELD DSN_TYPE

ID 'PART' FIELD PART

ID 'RECTYP' FIELD 'VYL----'

ID 'RC' FIELD RC

ID 'ERRMSG' FIELD ERRMSG.

ELSE.

CALL 'RSPOAOSD'

ID 'ID' FIELD IDENT

ID 'PART' FIELD PART

ID 'TYPE' FIELD DSN_TYPE

ID 'RECTYP' FIELD 'VYL----'

ID 'RC' FIELD RC

ID 'ERRMSG' FIELD ERRMSG.

ENDIF.

IF SY-SUBRC NE 0. EXIT. ENDIF.

CLEAR: DATA_SET_LINE, DATA_SET_LENGTH.

CALL 'RSPOARSD'

ID 'BUFF' FIELD DATA_SET_LINE+5

ID 'DATALEN' FIELD DATA_SET_LENGTH

ID 'RC' FIELD RC

ID 'ERRMSG' FIELD ERRMSG.

STATUS = SY-SUBRC.

ENDWHILE.

ENDIF.

IF STATUS <> 0 AND STATUS <> 40. EXIT. ENDIF.

DATA_SET = DATA_SET_LINE.

IF NOT ( DATA_SET_LENGTH IS INITIAL ).

DATA_SET-DATA_LENGTH = DATA_SET_LENGTH - 1.

ENDIF.

APPEND DATA_SET.

ADD 1 TO DATA_SET_LINECOUNT.

IF DATA_SET_IS_OTF = ' '.

IF DATA_SET_LINECOUNT >= DATA_SET_MAX_LINES.

CLEAR DATA_SET.

APPEND DATA_SET.

MOVE '----


' TO DATA_SET-DATA_LINE.

APPEND DATA_SET.

CLEAR DATA_SET.

APPEND DATA_SET.

WRITE: 'Abbruch nach'(029) TO MSG-A.

WRITE: DATA_SET_MAX_LINES TO MSG-B.

WRITE: 'Zeilen.'(030) TO MSG-C.

CONDENSE MSG.

DATA_SET-DATA_LINE = MSG.

APPEND DATA_SET.

EXIT.

ENDIF.

ELSE.

MOVE DATA_SET_LINE-DATA_LINE TO OTF_PAGE.

APPEND OTF_PAGE.

IF OTF_PAGE(2) = 'EP'.

ADD 1 TO OTF_PAGES.

IF OTF_PAGES >= OTF_MAX_PAGES.

MESSAGE S229(PO) WITH OTF_MAX_PAGES.

EXIT.

ENDIF.

ELSEIF OTF_PAGE(2) = 'OP'.

OTF_PAGE_INDEX-LINE_NUM = DATA_SET_LINECOUNT.

APPEND OTF_PAGE_INDEX.

ENDIF.

ENDIF.

ENDDO.

IF STATUS <> 0 AND STATUS <> 12.

CALL 'RSPOACSD'.

MESSAGE E112(PO) WITH STATUS RC ERRMSG.

ENDIF.

CALL 'RSPOACSD'.

STATUS = SY-SUBRC.

IF STATUS <> 0.

MESSAGE E112(PO) WITH STATUS RC ERRMSG.

ENDIF.

ENDFORM. " GET_OTF_TAB

&----


*& Form GET_PATH

&----


FORM GET_PATH USING P_FILENAME.

CLEAR: H_PATH, FILE_NAME.

FILE_NAME = P_FILENAME.

CALL FUNCTION 'WS_QUERY'

EXPORTING

QUERY = 'CD' "// Current Directory

IMPORTING

RETURN = H_PATH.

CONCATENATE FILE_NAME '.pdf' INTO FILE_NAME.

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

DEF_FILENAME = FILE_NAME

DEF_PATH = H_PATH

MASK = H_MASK

MODE = 'O'

IMPORTING

FILENAME = FILENAME"dbname

EXCEPTIONS

INV_WINSYS = 1

NO_BATCH = 2

SELECTION_CANCEL = 3

SELECTION_ERROR = 4

OTHERS = 5.

ENDFORM. " GET_PATH

****************************************************************

THIS IS THE CODE I AM USING.BUT IT IS NOT GIVING ME AN OUTPUT IN PDF PLEASE HELP.

Read only

0 Likes
938
call function 'CONVERT_OTF'
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = v_len_in
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
others = 4.
* Fehlerhandling
if sy-subrc <> 0.
*
endif.
perform download_pdf.



form download_pdf.


daTA : p_file LIKE rlgrap-filename VALUE 'C:test.pdf'.
data : file type string.
file = p_file.

data : wf_len_in1 type i.

wf_len_in1 = v_len_in.


CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = wf_len_in1
FILENAME = file
FILETYPE = 'BIN'
TABLES
DATA_TAB = i_tline.
Read only

jayanthi_jayaraman
Active Contributor
0 Likes
938

Hi,

Try this and reward points if it helps.

REPORT zzz_jaytest .

  • Types Declaration

TYPES : BEGIN OF ty_pa0001,

pernr TYPE pa0001-pernr,

bukrs TYPE pa0001-bukrs,

werks TYPE pa0001-werks,

END OF ty_pa0001.

  • Internal Table Declaration

DATA : i_pa0001 TYPE STANDARD TABLE OF ty_pa0001, "For pa0001 Details

i_otf TYPE STANDARD TABLE OF itcoo, "For OTF data

i_content_txt TYPE soli_tab, "Content

i_content_bin TYPE solix_tab, "Content

i_objhead TYPE soli_tab,

  • Work Area Declaration

w_pa0001 TYPE ty_pa0001, "For pa0001 Details

w_res TYPE itcpp, "SAPscript output

"parameters

w_otf TYPE itcoo, "For OTF

w_pdf TYPE solisti1, "For PDF

w_transfer_bin TYPE sx_boolean, "Content

w_options TYPE itcpo, "SAPscript output

"interface

  • Variable Declaration

v_len_in TYPE so_obj_len,

v_size TYPE i.

  • Constants Declaration

CONSTANTS : c_x TYPE c VALUE 'X', "X

c_locl(4) TYPE c VALUE 'LOCL', "Local Printer

c_otf TYPE sx_format VALUE 'OTF', "OTF

c_pdf TYPE sx_format VALUE 'PDF', "PDF

c_printer TYPE sx_devtype VALUE 'PRINTER', "PRINTER

c_bin TYPE char10 VALUE 'BIN', "BIN

c_name TYPE string VALUE 'C:\ZZZ_JAYTEST.PDF',"Downloading

"File Name

c_form(11) TYPE c VALUE 'ZZZ_JAYTEST'. "Form Name

START-OF-SELECTION.

  • Selecting the records from pa0001

SELECT pernr bukrs werks FROM pa0001

INTO TABLE i_pa0001 UP TO 10 ROWS.

  • Setting the options

w_options-tdcopies = 1 ."Number of copies

w_options-tdnoprev = c_x."No print preview

w_options-tdgetotf = c_x."Return of OTF table

w_options-tddest = c_locl."Spool: Output device

  • Opening the form

CALL FUNCTION 'OPEN_FORM'

EXPORTING

form = c_form

device = c_printer

language = sy-langu

OPTIONS = w_options

IMPORTING

RESULT = w_res.

LOOP AT i_pa0001 INTO w_pa0001.

  • Writting into the form

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'MAIN'

window = 'MAIN'.

ENDLOOP.

  • Closing the form

CALL FUNCTION 'CLOSE_FORM'

IMPORTING

RESULT = w_res

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.

  • Converting OTF data to single line

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.

  • Converting to PDF Format

CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'

EXPORTING

format_src = c_otf

format_dst = c_pdf

devtype = c_printer

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.

v_size = v_len_in.

  • Downloading the PDF File

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

bin_filesize = v_size

filename = c_name

filetype = c_bin

TABLES

data_tab = i_content_bin.

Read only

Former Member
0 Likes
938

i need to convert the script to pdf format n then download it to a particular location n then email it as an attachment.

please help me with this.the previous is not doing it.

Read only

0 Likes
938

As long as your setup has a device type of PDF1 - and a printer with this device type, you simply have to send the output to this printer and the rest will be done for you automatically.

Read only

0 Likes
938

hi,

Create the form in the spool. Take the spool number and use the standard program RSTXPDFT4 to download the script into PDF format onto a particular location. Then you can send the email with this pdf file as an attachment using the FM SO_NEW_DOCUMENT_ATT_SEND_API1.

Check this sample programs .

http://www.erpgenie.com/abap/pdf_creation.htm

http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm

Hope this helps.

Regards,

Richa