CREATE OR REPLACE procedure test7 is -- Header, Footer, number of pages l_blob blob; begin plpdf.init; -- initialize, without parameters means: page orientation: portrait, unit: mm, default page format: A4 plpdf.nopAlias; -- set alias for "number of pages": {nb} (default) plpdf.SetHeaderProcName('xheader',10); -- set header creator procedure plpdf.SetFooterProcName('xfooter',10); -- set footer creator procedure plpdf.NewPage; -- begin a new page, without parameters means: page orientation: default (portrait) plpdf.SetPrintFont('Arial',null,12); -- set font attributes: family: Arial, style: regular, font size: 12 plpdf.PrintCell(50,10,'Hello World! 1'); -- print text: cell size:50*10 plpdf.NewPage; -- begin a new page, without parameters means: page orientation: default (portrait) plpdf.PrintCell(50,10,'Hello World! 2'); -- print text: cell size:50*10 plpdf.SendDoc(l_blob); -- create content -- 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); */ -- or store insert into STORE_BLOB (blob_file, created_date) values (l_blob, sysdate); commit; end; /