Application Development 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: 

pdf

Former Member
0 Kudos

Hi all,

How will we convert report output to PDF without downloading?

Regards,

NIthu

6 REPLIES 6

Former Member
0 Kudos

&----


*& Report ZNA_REPORT_PDF

*&

&----


*&

*&

&----


REPORT ZNA_REPORT_PDF NO STANDARD PAGE HEADING.

*&----


*&----


*& Description: Simple Program to generate PDF from ABAP List Output

*&----


  • * PF-status containing a PDF button in the report Output to generate

  • * PDF form

SET PF-STATUS 'Z_PDF'.

*----


*Table Declarations

*----


TABLES: MARA, MARC, MAKT.

*----


  • * INTERNAL TABLE DECLARATIONS

*----


DATA: BEGIN OF TS_MARA OCCURS 0,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

MATKL LIKE MARA-MATKL,

LVORM LIKE MARA-LVORM,

WERKS LIKE MARC-WERKS,

MAKTX LIKE MAKT-MAKTX,

END OF TS_MARA.

*----


  • * SELECTION SCREEN PARAMETERS

*----


SELECTION-SCREEN BEGIN OF BLOCK B1.

SELECT-OPTIONS: S_MATNR FOR MARA-MATNR OBLIGATORY,

S_WERKS FOR MARC-WERKS OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

*----


TOP-OF-PAGE.

*----


WRITE: 40 'Generating PDF from List Output' COLOR 1 INTENSIFIED ON.

SKIP 1.

WRITE: /1 'Date :', SY-DATUM,

/1 'User ID :', SY-UNAME,

/1(112) SY-ULINE.

*----


START-OF-SELECTION.

*----


  • * PERFORM FOR BASIC SELECTION

PERFORM GET_MARA.

  • * PERFORM TO DISPLAY DATA

PERFORM DISPLAY_MARA.

*----


AT USER-COMMAND.

*----


  • * USER COMMAND TO GENERATE PDF FORM

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'PDF'.

DATA: L_PARAMS TYPE PRI_PARAMS,

L_VALID TYPE STRING,

W_SPOOL_NR LIKE TSP01-RQIDENT.

  • * TO GET PRINT PARAMETERS

CALL FUNCTION 'GET_PRINT_PARAMETERS'

IMPORTING

OUT_PARAMETERS = L_PARAMS

VALID = L_VALID.

  • IF SY-SUBRC 0.

  • ENDIF.

  • * INTERNAL TABLE FOR SELECTION SCREEN

DATA: BEGIN OF I_RSPARAMS OCCURS 0.

INCLUDE STRUCTURE RSPARAMS.

DATA: END OF I_RSPARAMS.

  • * STORE THE CURRENT SELECTION SCREEN DETAILS

CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'

EXPORTING

CURR_REPORT = SY-REPID

  • * IMPORTING

  • SP =

TABLES

SELECTION_TABLE = I_RSPARAMS

  • * EXCEPTIONS

  • NOT_FOUND = 1

  • NO_REPORT = 2

  • OTHERS = 3

.

  • IF SY-SUBRC 0.

  • * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

  • * SUBMIT TO GET THE SPOOL NUMBER

SUBMIT ZNA_REPORT_PDF WITH SELECTION-TABLE I_RSPARAMS

TO SAP-SPOOL

SPOOL PARAMETERS L_PARAMS

WITHOUT SPOOL DYNPRO

AND RETURN.

  • * SELECT THE RECENTLY CREATED SPOOL

SELECT MAX( RQIDENT ) INTO W_SPOOL_NR FROM TSP01

WHERE RQCLIENT = SY-MANDT

AND RQOWNER = SY-UNAME.

*REPORT TO GENERATE SPOOL NUMBER FOR PDF CONVERT

SUBMIT RSTXPDF5 WITH SPOOLNO = W_SPOOL_NR

WITH DSTDEVIC = 'LOCL' AND RETURN .

IF SY-SUBRC EQ 0.

CLEAR W_SPOOL_NR.

  • * SELECT THE RECENTLY CREATED SPOOL FOR PDF

SELECT MAX( RQIDENT ) INTO W_SPOOL_NR FROM TSP01

WHERE RQCLIENT = SY-MANDT

AND RQOWNER = SY-UNAME.

*REPORT TO DOWNLOAD PDF SPOOL TO GUI

SUBMIT RSTXPDFT5 WITH SPOOLID = W_SPOOL_NR

AND RETURN.

ENDIF.

WHEN 'BACK'.

LEAVE PROGRAM.

ENDCASE.

  • &---------------------------------------------------------------------

*& Form GET_MARA

  • &---------------------------------------------------------------------

  • text

  • ----------------------------------------------------------------------

  • --> p1 text

  • <-- p2 text

  • ----------------------------------------------------------------------

FORM GET_MARA .

CLEAR : TS_MARA.

REFRESH: TS_MARA.

  • * TO SELECT MATERIALS BASED ON SELECTION CRITERIA

SELECT A~MATNR A~MTART A~MATKL A~LVORM B~WERKS INTO CORRESPONDING

FIELDS OF TABLE TS_MARA FROM MARA AS A

INNER JOIN MARC AS B ON A~MATNR EQ B~MATNR

WHERE A~MATNR IN S_MATNR

AND B~WERKS IN S_WERKS.

LOOP AT TS_MARA.

SELECT SINGLE * FROM MAKT WHERE MATNR EQ TS_MARA-MATNR

AND SPRAS EQ SY-LANGU.

MOVE MAKT-MAKTX TO TS_MARA-MAKTX.

MODIFY TS_MARA INDEX SY-TABIX.

ENDLOOP.

ENDFORM. " GET_MARA

*&----


*& Form DISPLAY_MARA

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


FORM DISPLAY_MARA .

CLEAR : TS_MARA.

WRITE: /1 '|', 2(18) 'Material Number' COLOR 7,

21 '|', 22(5) 'Plant ' COLOR 7,

28 '|', 29(13) 'Material Type ' COLOR 7,

42 '|', 43(14) 'Material Group ' COLOR 7,

57 '|', 58(13) 'Deletion Flag ' COLOR 7,

71 '|', 72(40) 'Description ' COLOR 7,

112 '|'.

WRITE: /1(112) SY-ULINE.

LOOP AT TS_MARA.

WRITE: /1 '|', 2(18) TS_MARA-MATNR,

21 '|', 22(5) TS_MARA-WERKS,

28 '|', 29(13) TS_MARA-MTART,

42 '|', 43(14) TS_MARA-MATKL,

57 '|', 58(13) TS_MARA-LVORM,

71 '|', 72(40) TS_MARA-MAKTX,

112 '|'.

WRITE: /1(112) SY-ULINE.

ENDLOOP.

ENDFORM. " DISPLAY_MARA

Create PF-Status with PDF button and PDF function code.

This will work.

Former Member
0 Kudos

Hi

i think this FM'FOPC_REPORT_SHOW_PDF" module may help u try it once... let me know...

thks

Santu

Edited by: santhosh kumar on Oct 16, 2008 11:09 AM

Former Member
0 Kudos

Generate the output in spool , ( this can be done by submitting the program in background ) get the spool no from tcode sp01 .Use stanadard program RSTXPDFT4 to convert spool into pdf.

Former Member
0 Kudos

HI,

Submit the report spool to RSTXPDFT4.

Regards,

Naveen

Former Member
0 Kudos

Hi

you use FM CONVERT_OTF for that which convert it to PDF

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

MAX_LINEWIDTH = 132

  • ARCHIVE_INDEX = ' '

IMPORTING

BIN_FILESIZE = W_BIN_FILESIZE

TABLES

OTF = T_OTF

LINES = T_PDF_TAB

  • EXCEPTIONS

  • ERR_MAX_LINEWIDTH = 1

  • ERR_FORMAT = 2

  • ERR_CONV_NOT_POSSIBLE = 3

  • OTHERS = 4

.

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 'WS_DOWNLOAD'

EXPORTING

BIN_FILESIZE = W_BIN_FILESIZE

  • CODEPAGE = ' '

FILENAME = 'C:\TEST.PDF'

FILETYPE = 'BIN'

  • MODE = ' '

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • COL_SELECT = ' '

  • COL_SELECTMASK = ' '

  • NO_AUTH_CHECK = ' '

IMPORTING

FILELENGTH = W_FILESIZE

TABLES

DATA_TAB = T_PDF_TAB

  • FIELDNAMES =

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_WRITE_ERROR = 2

  • INVALID_FILESIZE = 3

  • INVALID_TYPE = 4

  • NO_BATCH = 5

  • UNKNOWN_ERROR = 6

  • INVALID_TABLE_WIDTH = 7

  • GUI_REFUSE_FILETRANSFER = 8

  • CUSTOMER_ERROR = 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.

Regards,

Tarak

satsrockford
Active Participant
0 Kudos

hi,

check this sample code

Save Report Output to a PDF File

This report takes another report as input, and captures the output of that report. The output is then converted to

PDF and saved to a local file. This shows how to use some of the PDF function modules, as well as an easy way to

create PDF files.

Source Code Listing

report zabap_2_pdf.

Enhancements: only allow to be run with variant. Then called

program will be transparent to users

TABLES

tables:

tsp01.

STRUCTURES

data:

mstr_print_parms like pri_params,

mc_valid(1) type c,

mi_bytecount type i,

mi_length type i,

mi_rqident like tsp01-rqident.

INTERNAL TABLES

data:

mtab_pdf like tline occurs 0 with header line,

mc_filename like rlgrap-filename.

SELECTION SCREEN

parameters:

p_repid like sy-repid, " Report to execute

p_linsz like sy-linsz default 132, " Line size

p_paart like sy-paart default 'X_65_132'. " Paper Format

start-of-selection.

concatenate 'c:\'

p_repid

'.pdf'

into mc_filename.

Setup the Print Parmaters

call function 'GET_PRINT_PARAMETERS'

exporting

authority= space

copies = '1'

cover_page = space

data_set = space

department = space

destination = space

expiration = '1'

immediately = space

in_archive_parameters = space

in_parameters = space

layout = space

mode = space

new_list_id = 'X'

no_dialog= 'X'

user = sy-uname

importing

out_parameters = mstr_print_parms

valid = mc_valid

exceptions

archive_info_not_found = 1

invalid_print_params = 2

invalid_archive_params = 3

others = 4.

Make sure that a printer destination has been set up

If this is not done the PDF function module ABENDS

if mstr_print_parms-pdest = space.

mstr_print_parms-pdest = 'LOCL'.

endif.

Explicitly set line width, and output format so that

the PDF conversion comes out OK

mstr_print_parms-linsz = p_linsz.

mstr_print_parms-paart = p_paart.

submit (p_repid) to sap-spool without spool dynpro

spool parameters mstr_print_parms

via selection-screen

and return.

Find out what the spool number is that was just created

perform get_spool_number using sy-repid

sy-uname

changing mi_rqident.

Convert Spool to PDF

call function 'CONVERT_ABAPSPOOLJOB_2_PDF'

exporting

src_spoolid= mi_rqident

no_dialog = space

dst_device = mstr_print_parms-pdest

importing

pdf_bytecount = mi_bytecount

tables

pdf = mtab_pdf

exceptions

err_no_abap_spooljob = 1

err_no_spooljob = 2

err_no_permission = 3

err_conv_not_possible = 4

err_bad_destdevice = 5

user_cancelled = 6

err_spoolerror = 7

err_temseerror = 8

err_btcjob_open_failed = 9

err_btcjob_submit_failed = 10

err_btcjob_close_failed = 11

others = 12.

call function 'DOWNLOAD'

exporting

bin_filesize = mi_bytecount

filename = mc_filename

filetype = 'BIN'

importing

act_filename = mc_filename

tables

data_tab = mtab_pdf.

-


FORM get_spool_number *

-


Get the most recent spool created by user/report *

-


--> F_REPID *

--> F_UNAME *

--> F_RQIDENT *

-


form get_spool_number using f_repid

f_uname

changing f_rqident.

data:

lc_rq2name like tsp01-rq2name.

concatenate f_repid+0(8)

f_uname+0(3)

into lc_rq2name separated by '_'.

select * from tsp01 where rq2name = lc_rq2name

order by rqcretime descending.

f_rqident = tsp01-rqident.

exit.

endselect.

if sy-subrc ne 0.

clear f_rqident.

endif.

endform." get_spool_number

check these threads...

https://forums.sdn.sap.com/thread.jspa?forumID=50&threadID=76531&messageID=824710#824710

https://forums.sdn.sap.com/thread.jspa?forumID=50&threadID=113131&messageID=1262598#1262598

https://forums.sdn.sap.com/thread.jspa?forumID=50&threadID=55086&messageID=573401#573401

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

Regards,

Satish