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;
/