7. Header, Footer, number of pages
CREATE OR REPLACE procedure test7 is
-- Header, Footer, number of pages
l_blob blob;
l_filename varchar2(30) := '123.pdf';
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-Disposition: inline; filename="' || l_filename || '"');
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;
/
CREATE OR REPLACE procedure xheader is
begin
plpdf.SetPrintFont('Arial','BU',12); -- Arial bold, underline 12
-- Page title
plpdf.PrintCell(0,10,'Page title text',0,0,'C'); -- print title of page
plpdf.LineBreak(20); -- line break, height is 20
end;
/
CREATE OR REPLACE procedure xfooter is
begin
plpdf.SetPrintFont('Arial','I',8); -- Arial italic 8
plpdf.PrintCell(0,10, to_char(plpdf.CurrentPageNumber) || '/{nb}',0,0,'C'); -- print number of page
end;
/
Source: test7.prc, xheader.prc, xfooter.prc
Result: test7.pdf