PL/PDF

2

In this blog, Steven Feuerstein writes about PL/PDF, a pl/sql library to generate PDF files. Sounds very interesting. It seems very easy to use, as is shown by an example on the site:

CREATE OR REPLACE package body test  is
  procedure pdf is
    l_blob blob;
  begin
    plpdf.init; — initialize
    plpdf.NewPage; — new page
    plpdf.SetPrintFont(‘Arial’,null,10); — set font
    plpdf.PrintCell(10,40,’Hello World!’); — Print a text
    plpdf.SendDoc(l_blob); — save the generated document
    — print
    owa_util.mime_header(‘application/pdf’,false);
    htp.p(‘Content-Length: ‘ || dbms_lob.getlength(l_blob));
    owa_util.http_header_close; 
    wpg_docload.download_file(l_blob);
  end;
end;
/

You can run this code directly from the web, using mod_plsql: http://server:port/pls/DAD/test.pdf, but storage or other options are off course also possible.

It is available for Oracle 9iR2 and up (and (with some limitations) also for Oracle XE) and the pdf can even include visual objects like pictures and (bar, lina and pie) diagrams and even barcodes.

Unfortunately, it is not open source, but it’s not very expensive. A trial is available that limits to 5 watermarked pages.

Share.

About Author

Aino Andriessen is a consultant on Enterprise Java, ADF, PL/SQL, XML, and SOA development and is Expertise Lead on Application Lifecycle Management (ALM). He has a strong interest in ADF, SOA, Maven, architecture, quality management, delivery and application lifecycle management. Aino publishes on the AMIS technology blog and has been a presenter at the ODTUG Kaleidoscope, Oracle Open World and UKOUG TechEbs.

2 Comments

  1. I have created a new package first and then i’ve written the pl/pdf code in the package body and also defined the spec. But after then during compilation it’s giving me error like ‘ plpdf.init must be declared ‘ and plpdf.newpage must be declared , plpdf.setprintfront must be declared .

    I’m not getting for what these errors are comming.

  2. A license comes at $350 per database. Not very stiff at all – and not worth any serious development effort of our own.

    I have not downloaded the package and checked the source, but one could be forgiven for thiunking that perhaps they loaded the iText open source product into the Database JVM and created a PL/SQL wrapper around that. If that is not what they did – it is something one could do.

    But then again, at $350, one should not do anything if PL/PDF’s functionality is sufficient.

    The examples are quite compelling. I like this stuff.