Adobe Forms

Artikel zu den Adobe Forms Services

Wie hier beschrieben PDF Dokumente in ABAP zusammenführen soll ein bestehendes PDF Dokument aus dem KPRO auf der Rückseite eines anderen PDF Dokuments, welches mittels ADS erstellt wird, eingebettet werden. Das auf der genannten Seite beschriebene Vorgehen funktioniert nur dann zuverlässig, wenn beide PDF Dokumente das gleiche Papierformat verwenden.

Im vorliegenden Fall wird ein PDF im DIN-A4 Format erstellt. Das einzubettende PDF Dokument liegt jedoch im DIN-A2 Format vor. Das Zusammenführen der Dokumente funktioniert zwar, der spätere Ausdruck auf einem DIN-A4 Drucker hingegen nicht. Die Zeichnung wird nicht skaliert ausgegeben.

Lösung

Wenn die Zeichnung als Bildformat vorliegt, kann die Ausgabe in einem Image Container im ADS erfolgen. Die Bilder werden in diesem Fall passend in den Container skaliert.

Mittels der Klasse ZCL_BC_PDF_CONVERTER kann ein existierendes PDF Dokument in ein Bildformat konvertiert werden. Die Klasse nimmt das PDF als XSTRING entgegen. Die Konvertierung selbst wird auf dem Application Server mittels System Kommando durchgeführt. Dabei wird das Tool pdftoppm (poppler-utils), welches bereits in der Linux Distribution des Application Server enthalten ist, genutzt.

Voraussetzung

Mit der Transaktion SM69 wird ein Systemkommando wie folgt definiert

Nutzung der Klasse

Die Konvertierung kann wie folgt durchgeführt werden

data: lv_data type xstring,
      lv_result type xstring,
     
      " auslesen des PDF aus dem kpro, Spool oder andere Quelle.
      " das PDF muss als Binärdaten vorliegen, nicht als Datei
     
          DATA(lo_converter) = NEW zcl_bc_pdf_converter(  ).
          lo_converter->set_source_data( lv_data ).
          lo_converter->convert(  ).
          lv_result = lo_converter->get_conversion_result(  ).

Zur Konvertierung werden temporäre Dateien auf dem Application Server angelegt und nach der Konvertierung gelöscht.

Verweis

Bei Interesse finden Sie die Klasse unter folgendem Repository

https://github.com/sap-weberpatrick/zcl_bc_pdf_converter

Problem

Aus SAP heraus soll ein bestehendes PDF Dokument gedruckt werden. Das Dokument wurde nicht mittels Adobe Forms Service erstellt, sondern z.B.: über Dienste zum Objekt an einen Materialstammsatz abgelegt.

Auf dieser Seite ist beschrieben, wie ein PDF Dokument, welches im SAP Dokumentenmanagementsystem abgelegt ist oder mittels GUI_UPLOAD hochgeladen wurde, mittels ABAP ausgedruckt werden kann.

... weiterlesen

Problem

Auf einem Adobe Formular soll ein Langtext (z.B. Langtext zu einem Vorgang eines Auftrags) gedruckt werden. Dieser Langtext enthält selbst INCLUDE Textbausteine.

Wird der Test wie auf der Seite "Langtexte drucken" beschrieben ausgegeben, werden die INCLUDE Bausteine nicht rekursiv aufgelöst und somit nicht gedruckt.

... weiterlesen