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

Write spool to PDF?

Former Member
0 Likes
860

I need to write the spool file to PDF file instead of sending it to printer!!! Is that possible?

6 REPLIES 6
Read only

Former Member
0 Likes
836

Well, as I said yesterday:


report ztest.
 
parameters: spoolid like tsp01-rqident obligatory.  
 
data begin of pdf_table occurs 0.
        include structure tline.
data end   of pdf_table.
 
data pdf_fsize type i.
 
call function 'CONVERT_OTFSPOOLJOB_2_PDF'
     exporting
          src_spoolid   = spoolid
          no_dialog     = 'X'
     importing
          pdf_bytecount = pdf_fsize
     tables
          pdf           = pdf_table
     exceptions
          others        = 0.
 
call function 'DOWNLOAD'
     exporting
          bin_filesize = pdf_fsize
          filetype     = 'BIN'
     tables
          data_tab     = pdf_table.
 

Read only

0 Likes
836

get the spool data

DATA:LH_TSP01 LIKE TSP01.

DATA:pT_SPOOL TYPE TYP_SPOOL OCCURS 0 WITH HEADER LINE.

SELECT * FROM TSP01 INTO LH_TSP01

WHERE RQOWNER IN PT_USER.

CHECK LH_TSP01-RQCRETIME+0(8) IN PT_DATE.

DATA:LH_TST01 LIKE TST01.

SELECT * FROM TST01 INTO LH_TST01

WHERE DNAME EQ LH_TSP01-RQO1NAME.

CLEAR:PT_SPOOL.

PT_SPOOL-RQIDENT = LH_TSP01-RQIDENT.

PT_SPOOL-TSP01 = LH_TSP01.

PT_SPOOL-TST01 = LH_TST01.

APPEND PT_SPOOL.

ENDSELECT.

ENDSELECT.

*download pdf

DATA:LW_CLIENT LIKE TST01-DCLIENT.

DATA:LW_NAME LIKE TST01-DNAME.

DATA:LW_OBJTYPE LIKE RSTSTYPE-TYPE.CLEAR:LW_OBJTYPE.

DATA:LW_TYPE LIKE RSTSTYPE-TYPE.CLEAR:LW_TYPE.

LW_CLIENT = PT_SPOOL-TSP01-RQCLIENT.

LW_NAME = PT_SPOOL-TSP01-RQO1NAME.

CALL FUNCTION 'RSTS_GET_ATTRIBUTES'

EXPORTING

AUTHORITY = 'SP01'

CLIENT = LW_CLIENT

NAME = LW_NAME

PART = 1

IMPORTING

TYPE = LW_TYPE

OBJTYPE = LW_OBJTYPE

EXCEPTIONS

FB_ERROR = 1

FB_RSTS_OTHER = 2

NO_OBJECT = 3

NO_PERMISSION = 4.

DATA:LW_RQIDENT LIKE TSP01-RQIDENT.

LW_RQIDENT = PT_SPOOL-TSP01-RQIDENT.

DATA:LW_NUMBYTES TYPE I. CLEAR:LW_NUMBYTES.

DATA:LW_PDFSPOOLID LIKE TSP01-RQIDENT. CLEAR:LW_PDFSPOOLID.

DATA:LW_JOBNAME LIKE TBTCJOB-JOBNAME. CLEAR:LW_JOBNAME.

DATA:LW_JOBCOUNT LIKE TBTCJOB-JOBCOUNT.CLEAR:LW_JOBCOUNT.

DATA:LT_TLINE LIKE TLINE OCCURS 100 WITH HEADER LINE.

CLEAR:LT_TLINE,LT_TLINE[].

IF LW_OBJTYPE+0(3) = 'OTF'.

CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'

EXPORTING

SRC_SPOOLID = LW_RQIDENT

NO_DIALOG = ' '

IMPORTING

PDF_BYTECOUNT = LW_NUMBYTES

PDF_SPOOLID = LW_PDFSPOOLID

BTC_JOBNAME = LW_JOBNAME

BTC_JOBCOUNT = LW_JOBCOUNT

TABLES

PDF = LT_TLINE

EXCEPTIONS

ERR_NO_OTF_SPOOLJOB = 1

ERR_NO_SPOOLJOB = 2

ERR_NO_PERMISSION = 3

ERR_CONV_NOT_POSSIBLE = 4

ERR_BAD_DSTDEVICE = 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.

ELSE.

CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'

EXPORTING

SRC_SPOOLID = LW_RQIDENT

NO_DIALOG = ' '

IMPORTING

PDF_BYTECOUNT = LW_NUMBYTES

PDF_SPOOLID = LW_PDFSPOOLID

BTC_JOBNAME = LW_JOBNAME

BTC_JOBCOUNT = LW_JOBCOUNT

TABLES

PDF = LT_TLINE

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.

ENDIF.

IF SY-SUBRC <> 0.

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

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

ENDIF.

DATA:LW_FILENAME LIKE RLGRAP-FILENAME.

CONCATENATE P_PCPATH '\'

PT_SPOOL-RQIDENT '_'

PT_SPOOL-TSP01-RQ2NAME '.pdf'

INTO LW_FILENAME.CONDENSE LW_FILENAME NO-GAPS.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

BIN_FILESIZE = LW_NUMBYTES

FILENAME = LW_FILENAME

FILETYPE = 'BIN'

TABLES

DATA_TAB = LT_TLINE

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.

Read only

andreas_mann3
Active Contributor
0 Likes
836

Hi,

look report RSTXPDFT4

Andreas

Read only

Former Member
0 Likes
836

Also look at OSS Note 317851 for an alternative approach without coding.

Cheers,

Sanjeev

Read only

jayanthi_jayaraman
Active Contributor
0 Likes
836

Hi,

Check this link.

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

It contains code sample to convert spool request into PDF document and emails it to recipicant.

Read only

Former Member
0 Likes
836

use the following command

suhmit rstxpdft4 via selection-screen and return.

hope this will help u.

Ateeq