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: 

Converting SapScript file in spool to pdf

Former Member
0 Kudos

Hi,

I have problems in converting the spool request into PDF file and also relating the spool request to the output type (ex: ba00), how can we relate the spool request to the output type.

Thanks,

Reddy.

4 REPLIES 4

Former Member
0 Kudos

Hi Raju,

You can execute the report "RSTXPDFT " in SE38 to convert the spool request to PDF.

It should help.It is a standard report for pdf conversion.

In case you cant find it, here is the code for it:

REPORT RSTXPDFT4 line-size 80.

*

  • Read spool job contents (OTF or ABAP list) and convert

  • to PDF, download PDF

*

PARAMETERS:

SPOOLNO LIKE TSP01-RQIDENT,

DOWNLOAD AS CHECKBOX DEFAULT 'X',

P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\temp\file.pdf'. "#EC NOTEXT

DATA otf like itcoo occurs 100 with header line.

DATA CANCEL.

DATA PDF LIKE TLINE OCCURS 100 WITH HEADER LINE.

DATA DOCTAB LIKE DOCS OCCURS 1 WITH HEADER LINE.

DATA: NUMBYTES TYPE I,

ARC_IDX LIKE TOA_DARA,

pdfspoolid like tsp01-rqident,

jobname like tbtcjob-jobname,

jobcount like tbtcjob-jobcount,

is_otf.

data: client like tst01-dclient,

name like tst01-dname,

objtype like rststype-type,

type like rststype-type.

tables: tsp01.

select single * from tsp01 where rqident = spoolno.

if sy-subrc <> 0.

WRITE: / 'Spoolauftrag existiert nicht'(003)

COLOR COL_negative.

exit.

endif.

client = tsp01-rqclient.

name = tsp01-rqo1name.

CALL FUNCTION 'RSTS_GET_ATTRIBUTES'

EXPORTING

AUTHORITY = 'SP01'

CLIENT = client

NAME = name

PART = 1

IMPORTING

  • CHARCO =

  • CREATER =

  • CREDATE =

  • DELDATE =

  • MAX_CREDATE =

  • MAX_DELDATE =

  • NON_UNIQ =

  • NOOF_PARTS =

  • RECTYP =

  • SIZE =

  • STOTYP =

TYPE = type

OBJTYPE = objtype

EXCEPTIONS

FB_ERROR = 1

FB_RSTS_OTHER = 2

NO_OBJECT = 3

NO_PERMISSION = 4.

if objtype(3) = 'OTF'.

is_otf = 'X'.

else.

is_otf = space.

endif.

if is_otf = 'X'.

CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'

EXPORTING

SRC_SPOOLID = spoolno

NO_DIALOG = ' '

  • DST_DEVICE =

  • PDF_DESTINATION =

IMPORTING

PDF_BYTECOUNT = numbytes

PDF_SPOOLID = pdfspoolid

  • OTF_PAGECOUNT =

BTC_JOBNAME = jobname

BTC_JOBCOUNT = jobcount

TABLES

PDF = pdf

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.

case sy-subrc.

when 0.

WRITE: / 'Funktion CONVERT_OTFSPOOLJOB_2_PDF erfolgreich'(001)

COLOR COL_POSITIVE.

when 1.

WRITE: / 'Kein OTF- und kein ABAP-Spoolauftrag'(002)

COLOR COL_negative.

exit.

when 2.

WRITE: / 'Spoolauftrag existiert nicht'(003)

COLOR COL_negative.

exit.

when 3.

WRITE: / 'Keine Berechtigung zum Lesen Spoolauftrag'(004)

COLOR COL_negative.

exit.

when others.

WRITE: / 'Fehler bei Funktion CONVERT_OTFSPOOLJOB_2_PDF'(005)

COLOR COL_negative.

exit.

endcase.

else.

CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'

EXPORTING

SRC_SPOOLID = spoolno

NO_DIALOG = ' '

  • DST_DEVICE =

  • PDF_DESTINATION =

IMPORTING

PDF_BYTECOUNT = numbytes

PDF_SPOOLID = pdfspoolid

  • LIST_PAGECOUNT =

BTC_JOBNAME = jobname

BTC_JOBCOUNT = jobcount

TABLES

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

case sy-subrc.

when 0.

WRITE: / 'Funktion CONVERT_ABAPSPOOLJOB_2_PDF erfolgreich'(006)

COLOR COL_POSITIVE.

when 1.

WRITE: / 'Kein OTF- und kein ABAP-Spoolauftrag'(002)

COLOR COL_negative.

exit.

when 2.

WRITE: / 'Spoolauftrag existiert nicht'(003)

COLOR COL_negative.

exit.

when 3.

WRITE: / 'Keine Berechtigung zum Lesen Spoolauftrag'(004)

COLOR COL_negative.

exit.

when others.

WRITE: / 'Fehler bei Funktion CONVERT_ABAPSPOOLJOB_2_PDF'(007)

COLOR COL_negative.

exit.

endcase.

endif.

                              • download PDF file ***********

check download = 'X'.

if not ( jobname is initial ).

WRITE: / 'Konvertierung per Hintergrundjob'(008)

COLOR COL_normal,

jobname, jobcount.

exit.

endif.

CALL FUNCTION 'DOWNLOAD'

EXPORTING

BIN_FILESIZE = NUMBYTES

FILENAME = P_FILE

FILETYPE = 'BIN'

IMPORTING

ACT_FILENAME = P_FILE

FILESIZE = NUMBYTES

CANCEL = CANCEL

TABLES

DATA_TAB = PDF.

if cancel = space.

WRITE: / NUMBYTES, 'Bytes heruntergeladen in Datei'(009), P_FILE.

endif.

Regards,

Divya

0 Kudos

thanks divya,

Can you also help me how to relate the spool number with the output type. ( ex BAoo)

0 Kudos

Hi,

First using print parameters find out the spool no and the using spool no , with the help of function- module 'CONVERT_ABAPSPOOLJOB_2_PDF' ,you can do the pdf conversion. The following code may be helpful for u :

PERFORM SPOOL.

FORM spool.

PERFORM display. " if u want to display your output

CALL FUNCTION 'GET_PRINT_PARAMETERS'

EXPORTING

destination = 'LOCL'

immediately = ' '

new_list_id = 'X'

expiration = '9'

in_parameters = p_pripar

layout = 'X_65_132'

line_count = 65

line_size = 132

no_dialog = 'X'

IMPORTING

out_parameters = p_pripar

valid = val

EXCEPTIONS

archive_info_not_found = 1

invalid_print_params = 2

invalid_archive_params = 3

OTHERS = 4.

NEW-PAGE PRINT ON NEW-SECTION PARAMETERS p_pripar NO DIALOG.

PERFORM display.

NEW-PAGE PRINT OFF.

CLEAR t_filename_tx.

CONCATENATE 'c:\temp\' p_mat '.pdf' INTO t_filename_tx.

CONDENSE t_filename_tx.

SELECT * FROM tsp01 INTO TABLE t_tsp01

WHERE rqowner EQ sy-uname.

SORT t_tsp01 BY rqcretime DESCENDING.

LOOP AT t_tsp01.

spoolno = t_tsp01-rqident.

EXIT.

ENDLOOP.

IF sy-subrc EQ 0.

PERFORM pdf_conversion.

ENDIF.

ENDFORM. " SPOOL

FORM pdf_conversion.

CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'

EXPORTING

src_spoolid = spoolno

no_dialog = ' '

IMPORTING

pdf_bytecount = numbytes

pdf_spoolid = pdfspoolid

btc_jobname = jobname

btc_jobcount = jobcount

TABLES

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

ENDFORM. " PDF_CONVERSION

Pls mark points..if helpful...

Regards,

Rudresh

TCS, Mumbai

0 Kudos

Thanks Rudresh,

I have a requirement to print only spool request for a certain output type, can you help me in figuring out how to select the details from spool number.

Thanks,

Reddy.