Standardtext ins PDF-Format konvertieren Mithilfe eines Standardreports ist es möglich, einen SAP-Standardtext ins PDF-Format zu konvertieren und abzuspeichern. Der Report RSTXPDFT konvertiert einen Standardtext ins PDF-Format. Die Datei wird auf dem Client gespeichert und kann dann mit dem AcrobatReader gelesen werden. Mit Programm RSTXPDFT4 können Spoolaufträge ins PDF-Format kopiert werden. Hilfreich ist auch der Funktionsbaustein CONVERT_OTF, dem man das Zielformat PDF mitgeben kann. Folgendes kleines Programm liest alle Spoolaufträge eines Benutzers/ Datums ein und zeigt diese als Liste an. Markierte Einträge werden in als PDF-File in dem zuvor angegeben Verzeichnis gespeichert. Programminfo Der PF-Status muss noch angelegt werden! Machen Sie hierzu in der Zeile SET PF-STATUS LIST. einen Doppelklick auf den Bezeichner LIST. Folgende Funktionen müssen eingetragen werden: DISP um den markierten Spoolauftrag anzuzeigen Passendes Icon: ICON_LAYOUT_CONTROL EXPO um den markierten Spoolauftrag als PDF-Datei im angegebenen Verzeichnis zu speichern. Passendes Icon: ICON_EXPORT Jeweils %EX für Ordnen Sie den Funktionen Funktionstasten Ihrer Wahl zu. [F7] steht in den meisten Standardprogrammen für Anzeige. Coding REPORT zz_convert2pdf. TYPE-POOLS sp01r. DATA: t_otf LIKE itcoo OCCURS 0 WITH HEADER LINE, t_pdf LIKE tline OCCURS 0 WITH HEADER LINE, t_buf LIKE soli OCCURS 0 WITH HEADER LINE, pdf_size TYPE i, rqid(10), cb, checkbox t_idlist TYPE sp01r_id_list,
l_idlist TYPE sp01r_id, t_tsp01 LIKE tsp01sys OCCURS 0 WITH HEADER LINE. SELECT-OPTIONS: s_owner FOR sy-uname DEFAULT sy-uname, s_datum FOR sy-datum DEFAULT sy-datum. PARAMETERS: p_pfad(130) DEFAULT c:temp LOWER CASE. START-OF-SELECTION. * Spoolaufträge zur Selektion lesen CALL FUNCTION RSPO_ISELECT_SPOOLREQS rfcsystem = NONE s_rqowne = s_owner s_rqcred = s_datum result_tsp01 = t_tsp01 EXCEPTIONS error = 1 OTHERS = 2. * List-Status muss die Funktionen DISP und EXPO enthalten SET PF-STATUS LIST. LOOP AT t_tsp01 WHERE rqdoctype = OTF OR rqdoctype = LIST. WRITE: / cb AS CHECKBOX INPUT ON, t_tsp01-rqident, t_tsp01-rq0name, t_tsp01-rq1name, t_tsp01-rq2name, t_tsp01-rqtitle. HIDE: t_tsp01. ENDLOOP. CLEAR t_tsp01. END-OF-SELECTION. * Abfrage der Funktionscodes AT USER-COMMAND. CASE sy-ucomm. WHEN DISP. * Spoolauftrag, auf dem der Cursor steht, anzeigen CHECK t_tsp01-rqident <> space. REFRESH t_idlist.
l_idlist-id = t_tsp01-rqident. APPEND l_idlist TO t_idlist. CALL FUNCTION RSPO_RID_SPOOLREQ_DISP id_list = t_idlist. WHEN EXPO. * Markierte Einträge als PDF exportieren CLEAR cb. DO. READ LINE sy-index FIELD VALUE cb t_tsp01-rqident. IF sy-subrc > 0. EXIT. ELSEif cb = X. CASE t_tsp01-rqdoctype. WHEN OTF. PERFORM export_otf2pdf USING t_tsp01-rqident. WHEN LIST. PERFORM export_list2pdf USING t_tsp01-rqident. ENDCASE. ENDDO. ENDCASE. CLEAR t_tsp01. * FORM export_otf2pdf * FORM export_otf2pdf USING value(f_rqid). DATA file LIKE rlgrap-filename. REFRESH: t_buf, t_otf, t_pdf. * Spoolauftrag lesen CALL FUNCTION RSPO_RETURN_SPOOLJOB rqident = f_rqid desired_type = OTF buffer = t_buf 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. APPEND LINES OF t_buf TO t_otf.
* Spoolauftrag umwandeln nach PDF CALL FUNCTION CONVERT_OTF format = PDF max_linewidth = 132 archive_index = IMPORTING bin_filesize = pdf_size otf = t_otf lines = t_pdf EXCEPTIONS err_max_linewidth = 1 err_format = 2 err_conv_not_possible = 3 OTHERS = 4. * Dateinamen basteln rqid = f_rqid. CONCATENATE t_tsp01-rqtitle ( rqid ).PDF INTO file separated by space. CONDENSE file. translate file using: _, /_, _, ;,,, :, *. shift file right deleting trailing _. shift file left deleting leading. CONCATENATE p_pfad file INTO file. * Datei speichern CALL FUNCTION WS_DOWNLOAD bin_filesize = pdf_size codepage = filename = file filetype = BIN data_tab = t_pdf. * Datei erfolgreich exportiert. MESSAGE s131(shdi) WITH space file. ENDFORM. * FORM export_list_2pdf * FORM export_list2pdf USING value(f_rqid). DATA: file LIKE rlgrap-filename. DATA: pdf_size type i. DATA: t_pdf like tline occurs 0 with header line.
CLEAR pdf_size. REFRESH: t_buf, t_otf, t_pdf. * Spoolauftrag umwandeln nach PDF call function CONVERT_ABAPSPOOLJOB_2_PDF exporting src_spoolid = f_rqid no_dialog = space importing pdf_bytecount = pdf_size tables pdf = t_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. * Dateinamen basteln rqid = f_rqid. CONCATENATE t_tsp01-rqtitle ( rqid ).PDF INTO file separated by space. CONDENSE file. translate file using: _, /_, _, ;,,, :, *. shift file right deleting trailing _. shift file left deleting leading. CONCATENATE p_pfad file INTO file. * Datei speichern CALL FUNCTION WS_DOWNLOAD bin_filesize = pdf_size codepage = filename = file filetype = BIN data_tab = t_pdf. * Datei erfolgreich exportiert. MESSAGE s131(shdi) WITH space file.
ENDFORM.