Skip to Main Content

 
Titelbild Muniqsoft Training

Auswahl  

Komplett Übersicht aller Oracle Tipps

PDF Anzeige aus Tabelle in APEX 

Oracle
APEX
APEX 22.2:APEX 23.1:APEX 23.2:APEX 24.1:APEX 24.2:RDBMS 19.1
26.03.25 (MP)
05.04.25(MP)
APEX, PDF, Tabelle

Passende Schulungen zum Thema

Sehr oft kommt die Frage in unseren APEX Kursen auf, wie man ein PDF in einer Seite anzeigen kann. In unserem Fall stammt das PDF aus einer Tabelle der Oracle Datenbank.

Vorbereitung:

  1. Tabelle erstellen
    Beispiel-Tabelle: emp_lob
     
  2. create table  emp_lob (
    EMPNO        NUMBER(4,0),
    ENAME        VARCHAR2(10 BYTE),
    DATEINAME    VARCHAR2(512 BYTE),
    BESCHREIBUNG VARCHAR2(4000 BYTE),
    DATEITYP     VARCHAR2(100 BYTE),
    L_UPDATE     DATE,
    BILD         BLOB)
  3. Form mit Report auf diese Tabelle legen. Damit können Sie dann die PDF in Ihre Tabelle laden
  4. In APEX ein neues Application Item (Shared Components / Application Logic / Application Item) anlegen (Name: EMPNO) und dieses Item auf unrestricted setzen.
  5. in APEX einen Application Process (Shared Components / Application Logic / Application Process) anlegen: Name getPDF und als Ajax Prozes definieren

    Der Process hat folgenden Code:

    begin
       for file in (select * from emp_lob
                   where empno = :EMPNO
         and dateityp='application/pdf') loop
           sys.htp.init;
           sys.owa_util.mime_header( file.dateityp, FALSE );
           sys.htp.p('Content-length: ' || sys.dbms_lob.getlength( file.bild));
           sys.htp.p('Content-Disposition: inline; filename="' || file.fname || '"' );
           sys.htp.p('Cache-Control: max-age=3600');  -- tell the browser to cache for one hour, adjust as necessary
           sys.owa_util.http_header_close;
           sys.wpg_docload.download_file( file.bild );
        
           apex_application.stop_apex_engine;
       end loop;
    end;
  6.  Legen Sie eine neue Seite an mit einer Static Content Region:
    Passen Sie bitte die IP-Adresse und evtl. den Port auf Ihrem Server an

    In dieser Region (wir gehen hier jetzt von Seite 1 aus) sollte ein Iten mit Namen P1_EMPNO liegen. Dort kann dann die entsprechende Zeile in dem sich das PDF befindet ausgewählt werden.
    Die Seite sollte dann noch über einem Submit verfügen (z.B. über einen Button)

  7. <object 
    data="http://127.0.0.1:8080/ords/f?p=100:0:&SESSION.:APPLICATION_PROCESS=getPDF:::EMPNO:&P1_EMPNO." style="width:100%;height:700px">
    <a href="http://127.0.0.1:8080/ords/f?p=100:0:&SESSION.:APPLICATION_PROCESS=getPDF:::EMPNO:&P1_EMPNO.">PDF laden</a>
    </object>

Und nun viel Spass mit der Anzeige alle Ihrer PDF´s. Wir zeigen damit unsere PDF Rechnungen in der APEX an :-)
Wir sehen uns (hoffentlich) bald in einem unserer Kurse …