CREATE OR REPLACE package body test is
procedure pdf is
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
htp.p(‘Content-Length: ‘ || dbms_lob.getlength(l_blob));
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.