"PDF Form Writer" xCelerator for xCP and D2

In 2011, both xCelerators "TripPlanner" and "PDF Form Reader" won the xCP xCelerator Challenge, in the categories Sample application and xCelerator asset. Thanks to all of you who gave us your support and your vote!

NEW: PDF Form Reader becomes PDF Form Writer and enables automatic filling of PDF forms

 

The "PDF Form Writer" xCelerator can be downloaded from this page.

 

 

Description

 

The "PDF Form Writer" xCelerator illustrates the benefits of xCP to easily implement a business process in organizations, thanks to reusable components.

"PDF Form Writer" is composed of 2 main components : PDF Form Reader (the 1st version of this sCelerator), and and the PDF Form Writer part (the most recent set of features).

  • PDF Form Reader is able to read and extract data from Adobe PDF Forms. These data can be used to update the metadata of the document, or as process variables (which can be freely used/controled/transformed/enriched during the rest of the process).
  • PDF Form Writer is able to fill data into Adobe PDF Forms. These data can come from the metadata of the document, or from  process variables (results of DQL queries, others objects in the repository, computed data, etc).

This xCelerator is based on 2 BOF modules which can be easily plugged into any process template configured with EMC Documentum Process Builder. It is configurable and can be used in many different use cases. 6 samples processes are provided with this xCelerator to show how it can be configured, and how the data can be retrieved.

"PDF Form Writer"  is also available for Documentum D2, through a server methods which can be triggered by D2 lifecycle.

 

 

Demonstration video

 

 

To see this video on EDN: please follow this link.

This demonstration video is also available on YouTube.

 

 

Highlights

 

  • Integration of iText library
  • Reusable and configurable Module, pluggable
  • Samples provided:
    • For xCP: 6 processes, metadata PDF form, invoice PDF form, invoice object type.
    • For Documentum D2: configuration to import a PDF form (an invoice) and automatically populate its property sheet.
  • Read the PDF form stored as the primary content or a rendition of the process package.
  • Fill data into the PDF form stored as a rendition (or primary content) of the process package, and store the filled form as another rendition of this document (or replace the original content).
  • Focus the data extraction/filling on a set of fields, or all the fields contained in the Form.
  • Use extracted data to update the metadata of the document.
  • Use extracted data as process variables.
  • Fill forms with the metadata of the document.
  • Fill forms with process variables.

 

 

References

 

This xCelerator is very usefull in many context and we hope that it will help you to quickly implement your own applications.

PDF forms reading features have already been successfully used in an application: the Trip Management Sample Application "TripPlanner". This xCelerator can be downloaded at https://community.emc.com/docs/DOC-9494.

PDF forms writing/filling features have been added in a more recent version of this xCelerator, in response to numerous requests from EMC Developer Network (EDN) users. Thanks for your greatings and support.

 

 

Features & Configuration

 

The module "PdfFormReader" offers 2 methods:

  • readPdfFormToAttributes: reads the PDF form and update the metadata of the document (for each field name matching with an attribute name).
  • readPdfFormToVariables: reads the PDF form and returns the extracted data (fields names and fields values).

"PDF Form Reader" is also available for Documentum D2 as a server method which calls "readPdfFormToAttributes" to extract data from the form and update the metadata of the document.

 

The module "PdfFormWriter" offers 2 methods:

  • writeAttributesToPdfForm: fills the PDF form with the metadata of the document (for each attribute name matching with a field name).
  • writeVariablesToPdfForm: fills the PDF form with the provided information.

"PDF Form Writer" is also available for Documentum D2 as a server method which calls "PdfFormWriterMethod" to fill data into the form (from document metadata or any other information).

 

The parameters provided when calling the BOF modules, or the server methods, allow to configure the behavior of the data extraction/insertion.

The following tables show the calling parameters and returned data for each method.

 

Module "PdfFormReader", Method "readPdfFormToAttributes"

Input: PdfFormReaderParams object

Parameter name

Data type

Mandatory/
Optional

Description

format

String

Optional

Format of the rendition (or primary content) corresponding to the PDF form. It must be a valid dm_format (usually: "pdf").

If this parameter is not provided, the module considers that the PDF form to read is the primary content of the document.

objectId

String

Mandatory

Object ID of the document handling the PDF form. It is usually mapped with the "r_object_id" of a process package.

fieldNames

String[]

Optional

List of fields to be extracted from the PDF form. The fields are identified by their name. If this parameter is not provided, the module reads the entire form and then update the document metadata.

The ordering of the list is not important.

cleanupAfterExtraction

Boolean

Optional

Enable/Disable the deletion of the PDF form file (from the temporary folder on the Content Server) after the processing.  Default value is "True".

dateTimePattern

String

Optional

Pattern used to read date & time field in the PDF form. Default value is "dd/mm/yyyy hh:mi:ss".

Output: nothing

 

Module "PdfFormReader", Method "readPdfFormToVariables"

Input: PdfFormReaderParams object

Parameter name

Data type

Mandatory/
Optional

Description

format

String

Optional

See description in previous table

objectId

String

Mandatory

See description in previous table

fieldNames

String[]

Optional

List of fields to be extracted from the PDF form. The fields are identified by their name. If this parameter is not provided,  the module reads the entire form and then the values of all the fields are returned.

The ordering of the list is important since the fields are returned in the same order in the PdfFormReaderReturn object.

cleanupAfterExtraction

Boolean

Optional

See description in previous table

dateTimePattern

String

Optional

See description in previous table

Output: PdfFormReaderReturn  object

numberOfValues

int

Number of values in "fieldNames" and "fieldValues" arrays.

fieldNames

String[]

List of field names extracted from the PDF form.

When a list of fields has defined in calling parameters ("PdfFormReaderParams.fieldNames"), the returned list has the same number of items, in the same order (except fields which are not found in the form). If not, the ordering of this list depends on the fields order in the PDF form.

fieldValues

String[]

List of field values extracted from the PDF form.

Values are not formatted and are provided as they have been read in the PDF form. For instance, the date&time pattern  depends on the format which has been configured in the PDF form at design time.

When a list of fields has defined in calling parameters ("PdfFormReaderParams.fieldNames"), the returned list has the same number of items, in the same order (except fields which are not found in the form). If not, the ordering of this list depends on the fields order in the PDF form.

 

Server Method "PdfFormReaderMethod" for Documentum D2

Parameter name

Data type

Mandatory/
Optional

Description

-format

String

Optional

Format of the rendition (or primary content) corresponding to the PDF form. It must be a valid dm_format (usually: "pdf").

If this parameter is not provided, the module considers that the PDF form to read is the primary content of the document.

-fieldNames

Comma-separated list, without any space

Optional

List of fields to be extracted from the PDF form. The fields are identified by their name. If this parameter is not provided, the module reads the entire form and then update the document metadata.

The ordering of the list is not important.

-cleanupAfterExtraction

Boolean ("true" or "false")

Optional

Enable/Disable the deletion of the PDF form file (from the temporary folder on the Content Server) after the processing.  Default value is "True".

-dateTimePattern

String

Optional

Pattern used to read date & time field in the PDF form. Default value is "dd/mm/yyyy hh:mi:ss".

Sample:

-format pdf -cleanupAfterExtraction true -dateTimePattern yyyy-mm-dd
-fieldNames invoice_number,invoice_date,billing_company,billing_name,billing_address1,billing_address2,notes

 

Module "PdfFormWriter", Method "writeAttributesToPdfForm"

Input: PdfFormWriterParams object

Parameter name

Data type

Mandatory/
Optional

Description

objectId

String

Mandatory

Object ID of the document handling the PDF form. It is usually mapped with the "r_object_id" of a process package. At the beginning, this document handles the input PDF form (the empty form which will be filled). After, this document also handles the output PDF form (with the date filled in it) ; the output PDF file can replace the original file or be stored aside, in another rendition.

outputFormat

String

Optional

Format of the rendition (or primary content) where the output PDF form (which has been filled) will be stored. It must be a valid dm_format (usually: "pdf").

If this parameter is not provided, the rendition used as input format will be replaced.

inputFormat

String

Optional

Format of the rendition (or primary content) corresponding to the original/empty PDF form. It must be a valid dm_format (usually: "pdf").

If this parameter is not provided, the module considers that the PDF form to use is the primary content of the document.

fieldNames

String[]

Optional

List of field names to fill in the PDF form. The fields are identified by their name. The ordering of the list is not important. This parameter is used to process only a subset of the document attributes. If this parameter is not provided, the module processes all the attributes and tries to fill these values in the PDF form (if the fields and the attributes have same name).

fieldValues

String[]

Optional

This parameter is not used for the method "writeAttributesToPdfForm".

allowValuesOutOfChoiceList

Boolean

Optional

Allow/disable the filing of combo box fields with a value which is out of the choice list. This parameter is only used when filling combo box fields. Default value is "False".

formFlattening

Boolean

Optional

Enable/Disable the flattening of the PDF form after its filing (the form will not be editable any more). Default value is "False".

cleanupAfterExtraction

Boolean

Optional

Enable/Disable the deletion of the PDF form file (from the temporary folder on the Content Server) after the processing. Default value is "True".

dateTimePattern

String

Optional

Pattern used to write date & time field in the PDF form. Default value is "dd/mm/yyyy hh:mi:ss".

Warning: ensure that the parameter "dateTimePattern" matches with the date pattern defined in the PDF form. Otherwise, the date will be displayed in the form using the pattern defined by the parameter "dateTimePattern", but when editing manually the form a warning message may be displayed by the PDF viewer software.

Output: nothing

 

Module "PdfFormWriter", Method "writeVariablesToPdfForm"

Input: PdfFormWriterParams object

Parameter name

Data type

Mandatory/
Optional

Description

objectId

String

Mandatory

Object ID of the document handling the PDF form. It is usually mapped with the "r_object_id" of a process package. At the beginning, this document handles the input PDF form (the empty form which will be filled). After, this document also handles the output PDF form (with the date filled in it) ; the output PDF file can replace the original file or be stored aside, in another rendition.

outputFormat

String

Optional

See description in previous table

inputFormat

String

Optional

See description in previous table

fieldNames

String[]

Optional

List of field names to fill in the PDF form. The fields are identified by their name. The parameter "fieldValues" must contain all the corresponding values. The ordering of the list must match with the parameter "fieldValues".

fieldValues

String[]

Optional

List of values to fill in the PDF form. The ordering of the list must match with the parameter "fieldNames".

allowValuesOutOfChoiceList

Boolean

Optional

See description in previous table

formFlattening

Boolean

Optional

See description in previous table

cleanupAfterExtraction

Boolean

Optional

See description in previous table

dateTimePattern

String

Optional

This parameter is not used for the method "writeVariablesToPdfForm": the dates are filled in the PDF form using the pattern used in the parameter "fieldValues".

Output: nothing

 

Server Method "PdfFormWriterMethod" for Documentum D2

Parameter name

Data type

Mandatory/
Optional

Description

-function

String

Mandatory

This parameter must match with one of the following values (to trigger the same behavior as the BOF module described above):

  • "writeAttributesToPdfForm"
  • "writeVariablesToPdfForm"

This parameter is mandatory and case unsensitive. There is no default value.

-outputFormat

String

Optional

Format of the rendition (or primary content) where the output PDF form (which has been filled) will be stored. It must be a valid dm_format (usually: "pdf").

If this parameter is not provided, the rendition used as input format will be replaced.

-inputFormat

String

Optional

Format of the rendition (or primary content) corresponding to the original/empty PDF form. It must be a valid dm_format (usually: "pdf").

If this parameter is not provided, the module considers that the PDF form to use is the primary content of the document.

-fieldNames

Comma-separated list, without any space

Optional

List of field names to fill in the PDF form. The fields are identified by their name. The ordering of the list is not important. This parameter is used to process only a subset of the document attributes. If this parameter is not provided, the module processes all the attributes and tries to fill these values in the PDF form (if the fields and the attributes have same name).

-fieldValues

Comma-separated list, without any space

Optional

List of field names to fill in the PDF form. The fields are identified by their name. The parameter "fieldValues" must contain all the corresponding values. The ordering of the list must match with the parameter "fieldValues".

This parameter is only used when the parameter "function" is set to "writeVariablesToPdfForm". It is ignored when function equals "writeAttributesToPdfForm".

-allowValuesOutOfChoiceList

Boolean

Optional

Allow/disable the filing of combo box fields with a value which is out of the choice list. This parameter is only used when filling combo box fields. Default value is "False".

-formFlattening

Boolean

Optional

Enable/Disable the flattening of the PDF form after its filing (the form will not be editable any more). Default value is "False".

-cleanupAfterExtraction

Boolean

Optional

Enable/Disable the deletion of the PDF form file (from the temporary folder on the Content Server) after the processing. Default value is "True".

-dateTimePattern

String

Optional

Pattern used to write date & time field in the PDF form. Default value is "dd/mm/yyyy hh:mi:ss".

Sample:

-function writeAttributesToPdfForm -inputFormat pdf -outputFormat pdf_filled
-allowValuesOutOfChoiceList true -formFlattening true -cleanupAfterExtraction true -dateTimePattern yyyy-mm-dd
-fieldNames=invoice_number,invoice_date,billing_company,shipping_company,billing_name,shipping_name,
billing_address1,shipping_address1,billing_address2,shipping_address2,billing_city,shipping_city,
shipping_method,amount_subtotal,amount_tax,amount_shipping,amount_grand_total,notes

 

 

Current limitations & Foreseen improvements


The "PDF Form Writer" xCelerator has been developed and tested in the following environment:

  • Forms have been created with Adobe Acrobat v9 and v10. It might work with PDF forms designed with other Acrobat versions, as soon as the PDF file is saved in version 1.5 or 1.6.

Note: if you want to use Adobe Lifecycle, please create the PDF form file with Adobe Acrobat first and then edit it with Adobe Lifecycle. When saving the file in Adobe Lifecycle, please use the format "Adobe Static PDF Form (pdf)" (and not "Adobe Dynamic XML Form (pdf)" nor other).

  • xCP and EMC-Documentum v6.6, v6.7, or v6.7 SP1 (it might also work with EMC-Documentum v6.5).
    Note: for EMC-Documentum v6.7, Patch 02 is required because of a known bug (more information)
  • Documentum D2 v3.0, v3.1, v4.0

 

PdfFormReader module doesn't manage repeating attributes, but only single ones. PdfFormWriter module manages only String repeating attributes. The maximum number of fields which can be managed is currently limited to 10000.

When using the method "readPdfFormToAttributes" or "writeAttributesToPdfForm", only the attribute having exactly the same name as the field name in the form (case insensitive) are processed. When there is no attribute matching with a field name, the field is simply ignored.

 

Foreseen improvements:

  • Configurable mapping between fields names and attributes names
  • Manage repeating fields within PdfFormReader module

 

 

Installation

 

To install "PDF Form Writer" for xCP:

  • Install the provided DAR file ("PDF_Form_Writer.dar", which is part of "PDF_Form_Writer_DAR_files.zip") using Documentum DAR installer, to deploy invoice object type, the BOF modules and the process template samples.

To install "PDF Form Writer" for Documentum D2:

  • Install the provided DAR file ("PDF_Form_Writer_for_D2.dar", which is part of "PDF_Form_Writer_DAR_files.zip") using Documentum DAR installer, to deploy invoice object type and the dm_method objects.
  • Import the D2 configuration file ("PDF_Form_Writer_D2_config.zip") using D2-Config (menu File, Import)
  • Copy the provided JAR file ("PDF_Form_Writer-API.jar") into the subfolder "\APP-INF\lib\" of Java Method Server (for instance "\Documentum\jbossX.Y.Z\server\DctmServer_MethodServer\deploy\ServerApps.ear\APP-INF\lib\", depending on your version of Documentum)
  • Restart Java Method Server

 

 

Description of samples

 

6 process samples are provided with "PDF Form Writer" xCelerator to show how it can be used and configured : 3 samples to illustrate reading features, and 3 sample to test wrting/filling features.

After having installed "PDF_Form_Writer.dar", sample process templates are installed in the folder '/System/Application/Pdf_Form_Writer'. Sample forms (dm_document and invoice objects) are also available in the same folder.

 

Process template "Pdf_Form_Reader_sample_1"

 

 

Uses the method "readPdfFormToAttributes" of the module.

Reads all the fields of the PDF form and updates the metadata of the invoice document (process package is using "invoice" object type). When a field name doesn't match with any attribute, it's ignored.

Sample document to use "Form_sample_invoice_object".

Pdf_Form_Reader_sample_1_process.JPG.jpg

The result is an invoice object with all its metadata synchronized with the data of the form:

object_name        : Form_sample_invoice

invoice_number    : 12345

invoice_date      : 2/13/2011 00:00:00

billing_company    : Hard Rock Cafe

shipping_company  : Hard Rock Cafe Times Square

billing_name      : Corporate Headquarters

shipping_name      : TheBoss

billing_address1  : 6100 Old Park Lane

shipping_address1  : 1501 Broadway

billing_address2  :

shipping_address2  :

billing_city      : Orlando, FL 32835

shipping_city      : New York, NY 10036, United States

shipping_method    : Standard

amount_subtotal    : 100000

amount_tax        : 19600

amount_shipping    : 400

amount_grand_total : 120000

notes              :

 

 

Process template "Pdf_Form_Reader_sample_2"

 

 

Uses the method "readPdfFormToVariables" of the module.

Reads all the fields of the PDF form, get values in process variables and fill the attribute "keywords" of the document (process package is using "dm_document" object type) with key-value pairs. All extracted data are processed.

Sample document to use "Form_sample_document_invoice".

Pdf_Form_Reader_sample_2_process.JPG.jpg

The result is a dm_document object having all the extracted data saved in the attribute "keywords":

[ 0]: invoice_number=12345

[ 1]: invoice_date=2011-02-13

[ 2]: billing_company=Hard Rock Cafe

[ 3]: shipping_company=Hard Rock Cafe Time Square

[ 4]: billing_name=Corporate Headquarters

[ 5]: shipping_name=TheBoss

[ 6]: billing_address1=6100 Old Park Lane

[ 7]: shipping_address1=1501 Broadway

[ 8]: billing_address2=

[ 9]: shipping_address2=

[10]: billing_city=Orlando, FL 32835

[11]: shipping_city=New York, NY 10036, United States

[12]: shipping_method=Standard

[13]: amount_subtotal=100000

[14]: amount_tax=19600

[15]: amount_shipping=400

[16]: amount_grand_total=120000

[17]: notes=

 

 

Process template "Pdf_Form_Reader_sample_3"

 

Uses the method "readPdfFormToVariables" of the module.

Reads only some fields (invoice number, invoice date, billing company) of the PDF form, get values in process variables and fills some attributes of the document (process package is using "dm_document" object type).

Sample document to use "Form_sample_document_invoice".

Pdf_Form_Reader_sample_3_process.JPG.jpg

The result is a dm_document object with only some selected information from the form (underlined in the following example) saved in the document metadata:

object_name  : Form_sample_document

title        : 13 Feb 2011

subject      : Invoice #12345 for "Hard Rock Cafe"

 

 

 

Documentum D2 sample 1
(server method "PdfFormReaderMethod")

 

The provided configuration enables you to import a PDF form and automatically trigger PDF form Reader to set the metadata of the newly created document.

 

The sample configuration is based on the "invoice" object type.

 

The server method "PdfFormReaderMethod" is called by D2 lifecycle, as part of the automated actions of the initial state "PdfFormReader" (or using the lifecycle transition called "Re-Run", if you want to trigger it manually).

 

The arguments provided to the server method "PdfFormReaderMethod" are:

-format pdf -cleanupAfterExtraction true -dateTimePattern yyyy-mm-dd
-fieldNames invoice_number,invoice_date,billing_company,shipping_company, billing_name,shipping_name,
billing_address1,shipping_address1,billing_address2,shipping_address2,billing_city,shipping_city,
shipping_method,amount_subtotal,amount_tax,amount_shipping, amount_grand_total,notes

PdfFormReader_for_D2_screeshot_1b.pngPdfFormReader_for_D2_screeshot_4.png

 

The result is an invoice object with all its metadata synchronized with the data of the form:

 

PdfFormReader_for_D2_screeshot_7.png

 

 

Process template "Pdf_Form_Writer_sample_1"

 

 

Uses the method "writeAttributesToPdfForm" of the module.

Writes the metadata/attributes of the document in the PDF form. When a field name doesn't match with any attribute, it's ignored and left empty. When there is no form field corresponding to an attribute (with the same name), the attribute value is not written in the form.

Sample document to use "Form_sample_document_metadata".

Pdf_Form_Writer_sample_1_process.JPG.jpg

The sample document "Form_sample_document_metadata" handles the following attributes:

object_name        : Form_sample_document_metadata

title              : This is the title of my document

subject            : subject4

keywords[R]        : myKeyword1,myKeyword2,myKeyword3

r_version_label[R] : 1.0, CURRENT

r_content_size    : 182988

r_creation_date    : it depends

r_modify_date      : it depends

a_full_text        : true

authors[R]        : author1,author3,author5

owner_name        : it depends ; dmadmin in this case

r_is_public        : true

r_object_type      : dm_document


The result is a PDF form containing all the above attributes.

 

This screenshot highlights:

  • String values can be used to fill text boxes, or to select a value in a combo box, list of radio buttons, or list of check boxes.
  • Boolean values can be used to fill text boxes or to tick a check box. Note: to do that, ensure that the value associated to this field in the PDF form is "true" (and not "yes" or something else).
  • Date values can be used to fill text boxes, using a specified date pattern.
  • Repeating attributes can be filled in text box as a comma-separated list of values, or to select values in a list box.
Metadata_form_filled.JPG.jpg

 

 

Process template "Pdf_Form_Writer_sample_2"

 

 

Uses the method "writeAttributesToPdfForm" of the module.

Writes the metadata/attributes of the document in the PDF form. Only the following attributes are taken into account (the list is provided as a parameter) : r_object_id,object_name,title,keywords,authors.

Sample document to use "Form_sample_document_metadata".

Pdf_Form_Writer_sample_2_process.JPG.jpg

The sample document "Form_sample_document_metadata" handles the following attributes the presented in the previous example.

The result is a PDF form containing the values of the attributes r_object_id, object_name, title, keywords, and authors. The other fields are ignored and left empty.

 

 

Process template "Pdf_Form_Writer_sample_3"

 

 

Uses the method "writeVariablesToPdfForm" of the module.

Fills in the PDF form using the values of the process variables. A list of FieldName-FieldValue pairs is provided to PDF Form Writer. The output is stored as a rendition of the document.

Sample document to use "Form_sample_document_invoice2".

Pdf_Form_Writer_sample_3_process.JPG.jpg

A list of FieldName-FieldValue pairs is provided to PDF Form Writer. In this example the following values are used for the parameters "fieldNames[]" and "fieldValues[].

Note: Thanks to data mapping features of Documentum Process Builder, these values can be provided as a couple of comma-separated strings, which are splited using "Split" built-in function.

fieldNames[]fieldValues[]
invoice_number7410125
invoice_date2013-02-17
billing_companyHappy hour
shipping_companyGilley's Saloon
billing_name
shipping_nameThe big boss
billing_address1725 Fremont Street
shipping_address1Treasure Island Hotel & Casino
billing_address2
shipping_address23300 S Las Vegas Blvd
billing_cityLas Vegas NV 89109 United States
shipping_cityLas Vegas NV 89109 United States
shipping_methodStandard
amount_subtotal500
amount_tax98
amount_shipping30
amount_grand_total628
notesPlease deliver the product directly in the basement of the bar. Door is on your right when facing the main entrance of the hotel
QtyRow1100
Product_DescriptionRow1Superior quality beer
Amount_EachRow13
AmountRow1300
QtyRow250
Product_DescriptionRow2Nachos (1kg)
Amount_EachRow24
AmountRow2200

 

The result is a PDF form containing all the above variables :

 

Invoice_form_filled_from_variables.jpg

 

 

Documentum D2 sample 2
(server method "PdfFormWriterMethod")

 

The provided configuration enables you to create an invoice object (using a form template), to manually set invoice attributes, automatically trigger PDF form Writer to fill metadata information of the PDF form.

 

The sample configuration is based on the "invoice" object type.

 

The server method "PdfFormWriterMethod" is called by D2 lifecycle. When the invoice object is created, and the attributes are set, you can request the automatic filling of the PDF form using the lifecycle transition called "Re-Run".

 

The arguments provided to the server method "PdfFormWriterMethod" are:

-function writeAttributesToPdfForm -inputFormat pdf -outputFormat pdf_filled
-allowValuesOutOfChoiceList true -formFlattening true -cleanupAfterExtraction true
-dateTimePattern yyyy-mm-dd -fieldNames=invoice_number,invoice_date,billing_company,
shipping_company,billing_name,shipping_name,billing_address1,shipping_address1,
billing_address2,shipping_address2,billing_city,shipping_city,shipping_method,
amount_subtotal,amount_tax,amount_shipping,amount_grand_total,notes


Invoice_properties_in_D2.jpg

PDF_form_filled_rendition_in_D2.jpg

 

The result is an invoice filled with all the information.

Note the effect of "formFlattening" option: the form fields are not visible anymore.

 

Invoice_form_filled_from_variables_flat.jpg

 

 

 

Screenshots

 

Invoice sample form

 

Pdf_Form_Reader_invoice_sample.jpg

 


Process template "Pdf_Form_Reader_sample_1"

 

 

Pdf_Form_Reader_sample_1_detail2.jpg

 

 

Process template "Pdf_Form_Reader_sample_2"

 

Pdf_Form_Reader_sample_2_detail2.jpg

 

Pdf_Form_Reader_sample_2_detail3.jpg

 

Pdf_Form_Reader_sample_2_detail4.jpg

 

 

Process template "Pdf_Form_Reader_sample_3"

 

Pdf_Form_Reader_sample_3_detail2.jpg

 

Pdf_Form_Reader_sample_3_detail3.jpg

 

Pdf_Form_Reader_sample_3_detail4.jpg

 

Pdf_Form_Reader_sample_3_detail5.jpg

 

 

Pdf_Form_Reader_sample_3_detail6.jpg

 

Data_mapping_PdfFormWriter_1.jpg

 

Data_mapping_PdfFormWriter_3.jpg


Documentum D2 lifecycle configuration

 

PdfFormReader_for_D2_screeshot_8.png

 

 

Downloadable content


PDF_Form_Writer_DAR_files.zip

Installation DAR files:

  • "PDF Form Writer" for xCP and D2: PDF_Form_Writer.dar
    • JAR files: PDF_Form_Writer-API.jar, itext-5.0.5.jar
    • 6 process templates
    • 1 custom object type (invoice)
    • 1 dm_format
    • 2 dm_method
    • 2 dmc_module
    • 4 sample documents: dm_document and invoices objects with a PDF form as content
  • "PDF Form Writer" for D2 (only): PDF_Form_Writer_for_D2.dar
    • 1 custom object type (invoice)
    • 1 dm_format
    • 2 dm_method
PDF_Form_Writer_D2_config.zip

Documentum D2 configuration:

  • Creation matrix
  • Property sheet (with all invoice metadata)
  • Invoice form template
  • Lifecycles, which trigger "PdfFormReaderMethod" and "PdfFormWriterMethod" server methods
PDF_Form_Writer-API.jarJava library which implements "PDF Form Writer" server methods and BOF modules

PDF_Form_Writer_src.zip

Source code of the "PDF Form Writer" xCelerator

Form_samples.zip

Form samples:

  • invoice_sample_empty.pdf
  • invoice_sample_filled.pdf
  • invoice_sample_filled_flattened.pdf
  • metadata_sample_empty.pdf
  • metadata_sample_filled.pdf