The free PL/SQL library to generate PDF are very hard to find.
As I could not find one, I’ve written it from the well known PHP library FPDF which was written by Olivier Plathey.
I propose you the last release of the PL_FPDF library (0.9.3).
I already use it on our production site laclasse.com.
This code gives you the same functions than FPDF, except that it converts all the images you need in PNG.
Required Environment
– Oracle en version 10g (10.2.0.1 and above).
– Installation ofOracle Web Tool Kit required (owa, htp and htf packages).
– OrdSys.OrdImage required (Oracle cartridge for images).
– Installation of package URIFactory required.
Changelog
– 0.9.2 -> 0.9.3 :
- Added Sample on setHeaderProc and setFooterProc procedures.
- Added parameter implementation to thes procedures.
- Modify Header and footer procedure behaviour to get parameter values
- declared subtype ’word’ ans type ’tv4000a’ in the specs.
– 0.9.1 -> 0.9.2 :
- Added procedure helloword Example.
- Added procedure testImg Example.
– 0.9.1 First Stable Version !
- Minor bugs (thanks to Josh Burroughs)
- Corrections on p_parseimage procedure (better reading of image files)
- Corrections on p_escape procedure
– 0.9-Beta2
- Minor bugs (thanks to Rudy Winter)
- Corrections on Image procedure
- Corrections on header and Footer procedures
- Multiple images on the same page works, but only with png Format.
Known bugs on this version
– GIF images are not supported, because of a PNG conversion problem.
– No PDF file compression. (This not a bug but a lack of feature).
– Write procedure which allows to put a flow of text dealing with the page height and width, don’t run as well.
– ...
Asked Features
– Dynamique SQL execution procedure that generates aPDF table.
Download, Test, and code !
I’m very interessted in having back your codes, bugs corrections and evolutions.
code examples
Here are some online examples :
Here are some simple code samples with PL_FPDF.
helloWord
Note that the "output" procedure calls automatically "ClosePdf".
procedure helloworld is
begin
pdf.FPDF('P','cm','A4');
pdf.openpdf;
pdf.AddPage();
pdf.SetFont('Arial','B',16);
pdf.Cell(0,1.2,'Hello World',0,1,'C');
pdf.Output();
end helloworld;
Put an image
procedure testImg is
img varchar2(2000);
begin
pdf.FPDF('P','cm','A4');
pdf.openpdf;
pdf.AddPage();
pdf.SetFont('Arial','B',16);
img := 'http://www.laclasse.com/v2/images/picto_laclassev2.png';
pdf.Image(img,1, 1, 10);
pdf.Output();
end testImg;