creating pdf documents using pl/sql create pdf in pl/sql generate pdf in pl/sql
pdf by pl/sql pl/sql Oracle Sql PDF pl/sql pdf generate
tool develop oracle pl/sql download
creating html_db applications
spacer
plsql generate pdf
html_db spacer Home Examples Extras
printemail html_db printed report

Open Office Forms

This package does not install automatically. The full package is available in the /extras directory of the installation package.

create or replace package plpdf_oo_form is

/**
Collect information about form's fields.
%version v1.6.0
%param p_blob blob: PDF file
%return plpdf_type.t_form_fields: description of PDF form's fields, see plpdf_type package for returned value
*/
function GetPdfFieldsInfo(
  p_blob blob
  ) return plpdf_type.t_form_fields;

/**
Display (with dbms_output) collected information about form's fields.
%version v1.6.0
%param p_blob blob: PDF file
%return plpdf_type.t_form_fields: description of PDF form's fields, see plpdf_type package for returned value
*/
procedure WriteOutPdfFieldsInfo(
  p_info plpdf_type.t_form_fields
  );

/**
Prepare a PDF for filling.
%version v1.6.0
%param p_blob blob: PDF file
%return plpdf_type.t_prepform: internal structure for filling a PDF (prepared PDF)
*/
function PrepPDF(
  p_blob blob
  ) return plpdf_type.t_prepform;

/**
Check if a field exists in the prepared PDF
%version v1.6.0
%param p_prepform in out plpdf_type.t_prepform: prepared PDF
%param p_field_name varchar2: name of the field
%return boolean:
<ul>
<li> true: field exists
<li> false: field does not exist
</ul>
*/
function FieldExist(
  p_prepform in out plpdf_type.t_prepform,
  p_field_name varchar2
  ) return boolean;

/**
Set the value of a field in the prepared PDF.
%version v1.6.0
%param p_prepform in out plpdf_type.t_prepform: prepared PDF
%param p_field_name varchar2: name of the field
%param p_field_value varchar2: value of the field
%return -
*/
procedure SetValue(
  p_prepform in out plpdf_type.t_prepform,
  p_field_name varchar2,
  p_value varchar2
  );

/**
Set a field to read only in the prepared PDF.
%version v1.6.0
%param p_prepform in out plpdf_type.t_prepform: prepared PDF
%param p_field_name varchar2: name of the field
%return -
*/
procedure SetReadonly(
  p_prepform in out plpdf_type.t_prepform,
  p_field_name varchar2
  );

/**
Set the value of a field and then set the field to read only in the prepared PDF.
%version v1.6.0
%param p_prepform in out plpdf_type.t_prepform: prepared PDF
%param p_field_name varchar2: name of the field
%param p_field_value varchar2: value of the field
%return -
*/
procedure SetValueReadonly(
  p_prepform in out plpdf_type.t_prepform,
  p_field_name varchar2,
  p_value varchar2
  );

/**
Get a filled PDF as a BLOB variable.
%version v1.6.0
%param p_prepform in out plpdf_type.t_prepform: prepared PDF
%param p_blob out nocopy  blob: filled PDF as a BLOB
%return -
*/
procedure GetPDF(
  p_prepform plpdf_type.t_prepform,
  p_blob out nocopy  blob
  );

/**
Convert a boolean value to checkbox On/Off value
%version v1.6.0
%param p_boolean boolean: boolean value
%return varchar2: converted value
*/
function boolean2cb(
  p_boolean boolean
  ) return varchar2;

/**
Set a field's read only flag in the prepared PDF.
%version v1.6.0
%param p_prepform in out plpdf_type.t_prepform: prepared PDF
%param p_field_name varchar2: name of the field
%param p_readonly boolean:
<ul>
<li> true: read only
<li> false: not read only (can be updated)
</ul>
%return -
*/
procedure SetReadonlyFlag(
  p_prepform in out plpdf_type.t_prepform,
  p_field_name varchar2,
  p_readonly boolean
  );
-----------------------------------------
-- database save and load support
/*
CREATE OR REPLACE TYPE plpdf_type_prepform_obj AS OBJECT (
  obj number,
  gen number,
  field_name varchar2(255 char),
  field_subtype varchar2(20 char),
  value_type varchar2(10 char),
  orig_value varchar2(2000 char),
  orig_read_only number(1,0), -- boolean
  new_value varchar2(2000 char),
  new_read_only number(1,0), -- boolean
  orig_flag number,
  value_ref number,
  flag_ref number
);


CREATE OR REPLACE TYPE plpdf_type_prepform_objs AS TABLE OF plpdf_type_prepform_obj;

CREATE OR REPLACE TYPE plpdf_type_prepform_xref AS TABLE OF number;

CREATE OR REPLACE TYPE plpdf_type_obj_ref AS OBJECT (obj number, gen number);

CREATE OR REPLACE TYPE plpdf_type_prepform AS OBJECT (
    pdf_blob blob,
    last_obj_end number,
    xref plpdf_type_prepform_xref,
    objs plpdf_type_prepform_objs,
    root_ref plpdf_type_obj_ref,
    info_ref plpdf_type_obj_ref
    );

-- sample table
create table plpdf_00_form_store
(
id number not null,
filename varchar2(255 char),
orig_pdf blob,
prepform plpdf_type_prepform
)
nested table prepform.xref store as xref_table,
nested table prepform.objs store as objs_table
;

*/

/**
Convert a prepared PDF to a database level object structure
%version v1.6.0
%param p_prepform plpdf_type.t_prepform: prepared PDF
%return plpdf_type_prepform: database level object structure
*/
function Convert2Object(
  p_prepform plpdf_type.t_prepform
  ) return plpdf_type_prepform;

/**
Convert a database level object structure to a prepared PDF
%version v1.6.0
%param plpdf_type_prepform: database level object structure
%return p_prepform plpdf_type.t_prepform: prepared PDF
*/
function Convert2Type(
  p_prepform plpdf_type_prepform
  ) return plpdf_type.t_prepform;

end plpdf_oo_form;
/

spacer
pl/sql pdf
mod_plsql pdf