PDF-Druck nur erste Seite über Spool

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

PDF-Druck nur erste Seite über Spool

Beitrag von IHe (Specialist / 153 / 36 / 49 ) »
Hallo zusammen,

ich habe folgende Anforderung: Gegeben ist ein bereits existierendes PDF-Dokument, welches nicht innerhalb SAP erzeugt wurde. Dieses liegt als XSTRING vor. Ich möchte dieses nun ausdrucken und verwende dafür die RSPO-FuBas. Da die Druckfunktion auch in der Private Cloud funktionieren soll entfällt die Option mittels Dateiablage und Druck über ADS. Der Spooldruck funktioniert auch grundsätzlich, es ist aber nicht möglich zu definieren, dass nur die erste Seite gedruckt werden soll. Hier mal ein Beispiel-Coding mit Parameter iv_pdf vom Typ xstring:

Code: Alles auswählen.

    DATA: lv_dest         TYPE sypri_pdest,
          lv_spool_handle TYPE i,
          lv_spoolid      TYPE tsp01-rqident,
          lt_bin          TYPE TABLE OF rspolpbi.

    DATA(lv_filesize) = xstrlen( iv_pdf ).
    DATA(lv_pages)    = get_number_of_pages( iv_pdf ).

    lv_dest = p_dest.
    CALL FUNCTION 'RSPO_SR_OPEN'
      EXPORTING
        dest            = lv_dest
        layout          = 'G_RAW'
        suffix1         = 'PDF'
        suffix2         = sy-uname
        immediate_print = abap_false
        auto_delete     = abap_true
        doctype         = 'BIN'
      IMPORTING
        handle          = lv_spool_handle
        spoolid         = lv_spoolid
      EXCEPTIONS
        OTHERS          = 1.
    IF sy-subrc <> 0.
      "Errorhandling
    ENDIF.

    CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
      EXPORTING
        buffer     = iv_pdf
      TABLES
        binary_tab = lt_bin.

    CALL FUNCTION 'RSPO_SR_TABLE_WRITE_BINARY'
      EXPORTING
        handle           = lv_spool_handle
        total            = lv_filesize
      TABLES
        lines            = lt_bin
      EXCEPTIONS
        handle_not_valid = 1
        operation_failed = 2
        OTHERS           = 3.
    IF sy-subrc <> 0.
      "Errorhandling
    ENDIF.

    lv_pages = 1. "Zu Testzwecken

    CALL FUNCTION 'RSPO_SR_CLOSE'
      EXPORTING
        handle           = lv_spool_handle
        final            = abap_true
      EXCEPTIONS
        handle_not_valid = 1
        operation_failed = 2
        OTHERS           = 3.
    IF sy-subrc <> 0.
      "Errorhandling
    ENDIF.

    CALL FUNCTION 'RSPO_OUTPUT_SPOOL_REQUEST'
      EXPORTING
*       COPIES                   = 0
        device                   = lv_dest
*       DIVISION                 = '*'
        endpage                  = lv_pages
*       PRIO                     = 0
*       RECEIVER                 = '*'
*       REQEST_TITLE             = '*'
        spool_request_id         = lv_spoolid
        startpage                = 1
*       TELELAN                  = '*'
*       TELENUM                  = '*'
*       POSNAME                  =
*       ACTTIME                  =
      EXCEPTIONS
        archive_dest_invalid     = 1
        archive_dest_not_found   = 2
        archive_dest_no_right    = 3
        cannot_archive           = 4
        change_archdest_no_right = 5
        change_copies_no_right   = 6
        change_dest_no_right     = 7
        change_devtype_no_right  = 8
        change_prio_no_right     = 9
        change_telenum_no_right  = 10
        change_title_no_right    = 11
        dest_invalid             = 12
        dest_not_found           = 13
        dest_no_right            = 14
        internal_problem         = 15
        invalid_fax_attribute    = 16
        invalid_parameters       = 17
        non_owner_no_right       = 18
        no_layout                = 19
        no_spool_request         = 20
        out_again_no_right       = 21
        spooler_problem          = 22
        in_process               = 23
        OTHERS                   = 24.
    IF sy-subrc <> 0.
      "Errorhandling
    ENDIF.
Alternativ kann man auch im RSPO_SR_OPEN den Parameter immediate_print = abap_true setzen und im RSPO_SR_CLOSE die Anzahl Seiten übergeben - das hat aber ebenfalls nicht den gewünschten Effekt.

Hat jemand eine Idee oder Erfahrungen damit?
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Seite 1 von 1

Vergleichbare Themen

1
Antw.
1450
Views
Spaltenüberschrift nur für erste Seite
von dyv » 08.09.2014 11:57 • Verfasst in ABAP® für Anfänger
1
Antw.
1867
Views
CL_GUI_ALV_TREE_SIMPLE - Blättern auf erste Seite
von thah » 04.05.2007 10:36 • Verfasst in ABAP® Core
0
Antw.
1448
Views
Smartforms erste Seite nicht drucken
von mari » 26.10.2007 14:11 • Verfasst in ABAP® Core
3
Antw.
3272
Views
Spool mit RSPO_RETURN_ABAP_SPOOLJOB auslesen -> nur 1. Seite
von essence » 02.09.2013 14:39 • Verfasst in ABAP® Core
2
Antw.
1257
Views
SAPSCRIPT: Seite zum Druck vorgeben
von Thomas17 » 06.05.2014 10:02 • Verfasst in ABAP® Core

Über diesen Beitrag

IHe

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

PDF-Druck nur erste Seite über Spool
vor 6 Stunden von IHe 1 / 74

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

PDF-Druck nur erste Seite über Spool
vor 6 Stunden von IHe 1 / 74

Unbeantwortete Forenbeiträge

PDF-Druck nur erste Seite über Spool
vor 6 Stunden von IHe 1 / 74
SD_PRINT_TERMS_OF_PAYMENT
vor 10 Stunden von Manfred K. 1 / 75