‎2005 Aug 18 8:20 PM
I need to write the spool file to PDF file instead of sending it to printer!!! Is that possible?
‎2005 Aug 18 8:26 PM
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.
‎2005 Aug 19 2:17 AM
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.
‎2005 Aug 19 8:08 AM
‎2005 Aug 19 8:44 AM
Also look at OSS Note 317851 for an alternative approach without coding.
Cheers,
Sanjeev
‎2005 Aug 19 8:48 AM
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.
‎2005 Aug 19 9:56 AM
use the following command
suhmit rstxpdft4 via selection-screen and return.
hope this will help u.
Ateeq