cancel
Showing results for 
Search instead for 
Did you mean: 

Splitting the Spool Request for Form Printing

Former Member
0 Kudos

Hello,

I have a requirement where I need to print data for 1500 employees (1 Page per employee) which makes 1500 pages per spool request. Now, there is a change in the printer due to which the printer only accepts only 300 pages in the buffer. So, after printing 300 pages, it stops. Is there any way I can split the spool request and generate 5 spool requests (1 request for every 300 pages) so that all the pages are printed at once? Please let me know.

Regards,

Venkata Phani Prasad Konduri

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello

Print via new technology as per note 821519 via PDF device.

Regards.

Answers (5)

Answers (5)

dharmenda_kumar
Explorer
0 Kudos

i have created a program using which you can create multiple pdf from a single spool number

first in the code below i have taken a spool number which has 2 pages in it.

second you must use the FM : RSPO_RETURN_SPOOLJOB  in the program to get the content of the spool .  while to perform analysis on how to build logic to split the spool otf/pdf user the FM RSPO_DISPLAY_SPOOLJOB, here by passing the spool number you will get the content in display mode and then based on the keyword you will build logic for e.g in my case i have to perform segregation based on material number so it can be used to decide how many pages are reserved by a specific material number.

another important point to kept in mind is that otf begins with "//"  and a page ends with "EP" and last page ends with  "//" along with "EP". It can be used to remove the number of lines to keep specific pages .

program layout as with proper documentation has been provided.

REPORT  zdk_spool_split.
**********************************************************************
* DATA DECLARATION.
TYPES : tbuf LIKE tline OCCURS 1.
FIELD-SYMBOLS: <buf> TYPE tbuf.
FIELD-SYMBOLS : <lit_otf> TYPE ANY TABLE.
DATA : lit_otf TYPE STANDARD TABLE OF itcoo.
DATA : objcont LIKE soli  OCCURS 0 WITH HEADER LINE.
DATA : format(5) TYPE c, dummy TYPE i.
DATA : buffer_pdf TYPE STANDARD TABLE OF tline.
DATA : p_file LIKE rlgrap-filename VALUE 'C:\temp\file1.pdf'. "#EC NOTEXT
DATA : numbytes TYPE i VALUE 255.
DATA : cancel.
DATA : otfcmd LIKE itcoo VALUE '//'.
DATA : pdfcnv_archive_index LIKE toa_dara.
DATA : bin_file TYPE xstring,
        pdf_username TYPE c.
**********************************************************************
* GET THE SPOOL NUMBER FROM THE USER.
PARAMETERS : p_sid TYPE tsp01-rqident OBLIGATORY.
**********************************************************************
* GET THE CONTENT OF THE SPOOL NUMBER
CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'
   EXPORTING
     rqident              = p_sid
   TABLES
     buffer               = objcont
   EXCEPTIONS
     no_such_job          = 1
     job_contains_no_data = 2
     selection_empty      = 3
     no_permission        = 4
     can_not_access       = 5
     read_error           = 6
     type_no_match        = 7
     OTHERS               = 8.
IF sy-subrc <> 0.
   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
**********************************************************************
* INCORPORATE YOUR LOGIC TO DELETE LINES WHICH ARE NOT REQUIRED.
* IN MY CASE I HAVE REMOVED LINES FROM 351 TO 715 TO REMOVE THE SECOND PAGE FROM MY SPOOL
* MY OBJCONT AFTER DELTED BEGINS WITH "//" AND ENDS WITH "EP" AND "//"
DELETE objcont[] FROM 351 TO 715.
* IT ONLY CONTAINS ONE PAGE OUT OF 2 PAGES FROM THE SPOOL NUMBER I HAVE PROVIDED.
**********************************************************************
* CONVERT OTF TO PDF
lit_otf = objcont[]. " GET THE OTF IN CORRECT OTF FORMAT
ASSIGN buffer_pdf TO <buf>.
format = 'PDF'. " CHOOSE THE CORRECT FORMAT IE PDF MUST FOR CONVERSION
CALL FUNCTION 'CONVERT_OTF'
   EXPORTING
     format                = format
   IMPORTING
     bin_filesize          = dummy
   TABLES
     otf                   = lit_otf
     lines                 = <buf>
   EXCEPTIONS
     err_max_linewidth     = 1
     err_format            = 2
     err_conv_not_possible = 3
     OTHERS                = 4.
IF sy-subrc IS NOT INITIAL.
   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
**********************************************************************
* GET THE NUMBYTES OF THE PDF CONTENT OBTAINED AFTER THE CONVERSION
* CORRECT NUMBYTE IS VERY IMPORTANT OTHERWISE IT WILL NOT GENERATE
* PDF IN CORRECT FORMAT.
PERFORM convert_otf2pdf_end(rstxcpdf) TABLES <buf>
                                       USING otfcmd
                                             numbytes
                                             pdfcnv_archive_index
                                             bin_file
                                             pdf_username.
**********************************************************************
* NOW DOWNLOAD THE PDF TO VIEW IN ACTUAL PDF AT DESIRED PATH
PERFORM download_w_ext(rstxpdft) TABLES <buf>
                                  USING p_file
                                        '.pdf'
                                        'BIN'
                                        numbytes
                                        cancel.

Former Member
0 Kudos

Closing the thread.

Former Member
0 Kudos

Hi,

Cant you execute your program for 300 emplyees at a time.And call a batch job to execute the next set.

Former Member
0 Kudos

Hi,

there are two possibilities.

1. Print to pdf and then print in acrobat

You can print via LOCL print and then use your SAPGUI-WIndows pdf printer.

Alternative, use the program (search for "*pdf4" program, enter the spool request and save the pdf file.

.2. Modify your driver program.

Make a spool for 300 employes (loop at your global itab), using start_form and end_form.

Regards,

Christian

Edited by: christian goerke on May 20, 2011 9:36 AM

Program name is: "RSTXPDFT4", sorry I have written the reply in the train

Former Member
0 Kudos

Hello Sir,

We can help you out with this problem. We can manage Printing from outside SAP, and provide features such Load Balancing, Back-up Printing etc. This can be Managed from you Windows System. Please feel free to get in touch with me.

Regards

Abhishek Savant

+ 91 22 40 76 55 55