When you get runtime error with header or footer example:
ORA-20000: ERR-006 Dynamic PL/SQL call (header or footer procedure) raises error: -6550. PL/PDF uses Oracle "execute immediate" for call these procedures. Please check the "BasicExamples.HeaderTOC1" procedure with plpdf.checkExecuteError() procedure
The PL/PDF Reporter calls header/footer procedure with “execute immediate” and when the PL/PDF Reporter owner and the report owner (or caller) are different then need GRANT and SYNONYM (qualified name):
GRANT EXECUTE ON <package> TO <plpdf_owner>;
CREATE SYNONYM <package> FOR <package_owner>.<package>;
or you can use public access:
GRANT EXECUTE ON <package> TO PUBLIC;
CREATE PUBLIC SYNONYM <package> FOR <package_owner>.<package>;
if the runtime error is permanent you can check the header (or footer) error details:
begin
plpdf.checkExecuteError('<package>.<header_procedure>');
end;