Oracle® Fusion Middleware Report Designer's Guide for Oracle Business Intelligence Publisher 11g Release 1 (11.1.1) Part Number E22254-03 |
|
|
PDF · Mobi · ePub |
This chapter describes creating PDF templates for BI Publisher.
This chapter includes the following sections:
Section 7.11, "Creating a Layout from a Predefined PDF Form"
Section 7.12, "Adding or Designating a Field for a Digital Signature"
To create a PDF template, take an existing PDF document and apply the BI Publisher markup. Because you can use a PDF from any source, you have multiple design options. For example:
Design the template using any application that generates documents that can be converted to PDF, such as Microsoft Word
Scan a paper document to use as a template
Download a PDF document from a third-party website
Note:
The steps required to create a template from a third-party PDF depend on whether form fields have been added to the document. For more information, see Section 7.11, "Creating a Layout from a Predefined PDF Form."
If you are designing the template, then when you have converted to PDF, the template is treated like a set background. When you mark up the template, you draw fields on top of this background. To edit the template, you must edit the original document and then convert back to PDF.
For this reason, the PDF template is not recommended for documents that require frequent updates. However, it is appropriate for forms that have a fixed template, such as invoices or purchase orders.
To apply or edit form fields in a PDF document, you must have Adobe Acrobat Professional. BI Publisher supports Adobe Acrobat 5.0 and later as a tool for updating the template.
BI Publisher generates the output PDF version based on the input PDF version as follows:
PDF version 1.4 and earlier generates PDF 1.4
PDF version 1.5 and later generates the same output version as the input version
Note:
BI Publisher supports the PDF 1.7 standard. For more information, see Appendix F, "PDF Version Support."
To design the template you can use any desktop application that generates documents that can be converted to PDF. Or, scan in an original paper document to use as the background for the template.
Figure 7-1 shows a template for a sample purchase order. It was designed using Microsoft Word and converted to PDF using Adobe Acrobat Distiller.
Figure 7-1 Template for a Sample Purchase Order
The following is the XML data that is used as input to this template:
<?xml version="1.0"?> <POXPRPOP2> <G_HEADERS> <POH_PO_NUM>1190-1</POH_PO_NUM> <POH_REVISION_NUM>0</POH_REVISION_NUM> <POH_SHIP_ADDRESS_LINE1>3455 108th Avenue</POH_SHIP_ADDRESS_LINE1> <POH_SHIP_ADDRESS_LINE2></POH_SHIP_ADDRESS_LINE2> <POH_SHIP_ADDRESS_LINE3></POH_SHIP_ADDRESS_LINE3> <POH_SHIP_ADR_INFO>Seattle, WA 98101</POH_SHIP_ADR_INFO> <POH_SHIP_COUNTRY>United States</POH_SHIP_COUNTRY> <POH_VENDOR_NAME>Allied Manufacturing</POH_VENDOR_NAME> <POH_VENDOR_ADDRESS_LINE1>1145 Brokaw Road</POH_VENDOR_ADDRESS_LINE1> <POH_VENDOR_ADR_INFO>San Jose, CA 95034</POH_VENDOR_ADR_INFO> <POH_VENDOR_COUNTRY>United States</POH_VENDOR_COUNTRY> <POH_BILL_ADDRESS_LINE1>90 Fifth Avenue</POH_BILL_ADDRESS_LINE1> <POH_BILL_ADR_INFO>New York, NY 10022-3422</POH_BILL_ADR_INFO> <POH_BILL_COUNTRY>United States</POH_BILL_COUNTRY> <POH_BUYER>Smith, J</POH_BUYER> <POH_PAYMENT_TERMS>45 Net (terms date + 45)</POH_PAYMENT_TERMS> <POH_SHIP_VIA>UPS</POH_SHIP_VIA> <POH_FREIGHT_TERMS>Due</POH_FREIGHT_TERMS> <POH_CURRENCY_CODE>USD</POH_CURRENCY_CODE> <POH_CURRENCY_CONVERSION_RATE></POH_CURRENCY_CONVERSION_RATE> <LIST_G_LINES> <G_LINES> <POL_LINE_NUM>1</POL_LINE_NUM> <POL_VENDOR_PRODUCT_NUM></POL_VENDOR_PRODUCT_NUM> <POL_ITEM_DESCRIPTION>PCMCIA II Card Holder</POL_ITEM_DESCRIPTION> <POL_QUANTITY_TO_PRINT></POL_QUANTITY_TO_PRINT> <POL_UNIT_OF_MEASURE>Each</POL_UNIT_OF_MEASURE> <POL_PRICE_TO_PRINT>15</POL_PRICE_TO_PRINT> <C_FLEX_ITEM>CM16374</C_FLEX_ITEM> <C_FLEX_ITEM_DISP>CM16374</C_FLEX_ITEM_DISP> <PLL_QUANTITY_ORDERED>7500</PLL_QUANTITY_ORDERED> <C_AMOUNT_PLL>112500</C_AMOUNT_PLL> <C_AMOUNT_PLL_DISP> 112,500.00 </C_AMOUNT_PLL_DISP> </G_LINES> </LIST_G_LINES> <C_AMT_POL_RELEASE_TOTAL_ROUND>312420/<C_AMT_POL_RELEASE_TOTAL_ROUND> </G_HEADERS> </POXPRPOP2>
After you have converted a document to PDF, you define form fields that display the data from the XML input file. These form fields are placeholders for the data.
The process of associating the XML data to the PDF template is the same as the process for the RTF template. See Section 4.2, "Associating the XML Data to the Template Layout."
When you draw the form fields in Adobe Acrobat, you are drawing them on top of the template that you designed. There is not a relationship between the design elements on the template and the form fields. You therefore must place the fields exactly where you want the data to display on the template.
You can define a placeholder as text, a check box, or a radio button, depending on how you want the data presented.
Note:
The steps for adding a form field depend on the version of Adobe Acrobat Professional that you are using. See the Adobe documentation for the version. If you are using Adobe Acrobat 9 Pro, then from the Forms menu, select Add or Edit Fields.
The following describes how to create a text Form Field placeholder using Adobe Acrobat 9 Pro. If you are using a different version of Adobe Acrobat Professional, then refer to the documentation for details.
To create a text placeholder:
From the Forms menu, select Add or Edit Fields.
From the Add New Field list, choose Text Field. The cursor becomes a crosshair.
Place the crosshair in the form where you want the field to reside and click. The Field Name dialog pops up.
Enter the name. The name of the text field must match the name of the XML element from the data that is to populate this field at runtime.
To set more properties, click Show All Properties
Use the Properties dialog box to set other attributes for the placeholder. For example, enforce maximum character size, set field data type, data type validation, visibility, and formatting.
If the field is not placed exactly where desired, or is not the correct size, drag the field for exact placement and resize the field using the handles.
BI Publisher supports the following options available from the Field Properties dialog box. For more information about these options, see the Adobe Acrobat documentation.
General
Read Only
The setting of this check box in combination with a set of configuration properties control the read-only/updatable state of the field in the output PDF. See Section 7.10.2, "Setting Fields as Updatable or Read Only."
Required
Visible/Hidden
Orientation (in degrees)
Appearance
Border Settings: color, background, width, and style
Text Settings: color, font, size
Border Style
Options tab
Multi-line
Scrolling Text
Format tab - Number category options only
Calculate tab - all calculation functions
A check box is used to present options from which more than one can be selected. Each check box represents a different data element. You define the value that causes the check box to display as "checked."
For example, a form contains a check box listing of automobile options such as Power Steering, Power Windows, and Sunroof. Each of these represents a different element from the XML file (for example <POWER_STEERING>). If the XML file contains a value of "Y" for any of these fields, you want the check box to display as checked. All or none of these options may be selected.
The following describes how to create a check box field using Adobe Acrobat 9 Pro. If you are using a different version of Adobe Acrobat Professional, refer to the documentation for details.
To create a check box:
From the Forms menu, select Add or Edit Fields.
From the Add New Field list, choose Check Box. The cursor becomes a crosshair.
Place the crosshair in the form where you want the field to reside and click. The Field Name dialog pops up.
Enter the name. The name of the check box field must match the name of the XML element from the data that is to determine its state (checked or unchecked).
Click Show All Properties
Click the Options tab.
Select the Check Box Style type from the list.
In the Export Value field enter the value that the XML data field should match to enable the "checked" state.
For the example, enter "Y" for each check box field.
Set other Properties as desired.
A radio button group is used to display options from which only one can be selected.
For example, the XML data file contains a field called <SHIPMENT_METHOD>. The possible values for this field are "Standard" or "Overnight". You represent this field in the form with two radio buttons, one labeled "Standard" and one labeled "Overnight". Define both radio button fields as placeholders for the <SHIPMENT_METHOD> data field. For one field, define the "on" state when the value is "Standard". For the other, define the "on" state when the value is "Overnight".
The following describes how to create a radio button group using Adobe Acrobat 9 Pro. If you are using a different version of Adobe Acrobat Professional, then refer to the documentation for details.
To create a radio button group:
From the Forms menu, select Add or Edit Fields.
From the Add New Field list, choose Radio Button. The cursor becomes a crosshair.
Place the crosshair in the form where you want the radio button group to reside and click. The Radio Group Name dialog pops up.
Enter the name. The name of the radio group must match the name of the XML element from the data that is to determine its state (selected or unselected).
In the Button Value field enter the value that the XML data field should match to enable the "on" state.
For the example, enter "Standard" for the field labeled "Standard".
To enter another radio button to the group, click Add another button to group. The name of the radio group defaults into the name field.
In the Button Value field enter the value that the XML data field should match to enable the "on" state for this button.
For example, enter "Overnight" for the field labeled "Overnight".
If you want to change any of the properties, then click Show All Properties. To change the radio button style, click the Options tab.
Select Radio Button from the Type drop down list.
Set other Properties as desired.
In the PDF layout, you explicitly define the area on the page that contains the repeating fields. For example, on the purchase order layout, the repeating fields should display in the block of space between the Item header row and the Total field.
To define the area to contain the group of repeating fields:
Insert a Text Field at the beginning of the area that is to contain the group.
In the Field Name dialog, enter any unique name you choose. This field is not mapped.
In the Tooltip field of the Text Field Properties dialog, enter the following syntax:
<?rep_field="BODY_START"?>
Define the end of the group area by inserting a Text Field at the end of the area the that is to contain the group.
In the Field Name dialog, enter any unique name you choose. This field is not mapped. Note that the name you assign to this field must be different from the name you assigned to the "body start" field.
In the Tooltip field of the Text Field Properties dialog, enter the following syntax:
<?rep_field="BODY_END"?>
To define a group of repeating fields:
Insert a placeholder for the first element of the group.
Note:
The placement of this field in relationship to the BODY_START tag defines the distance between the repeating rows for each occurrence. See Section 7.10.1, "Placement of Repeating Fields."
For each element in the group, enter the following syntax in the Tooltip field:
<?rep_field="T1_Gn"?>
where n is the row number of the item on the layout.
For example, the group in the sample report is laid out in three rows.
For the fields belonging to the row that begins with "PO_LINE_NUM" enter
<?rep_field="T1_G1"?>
For the fields belonging to the row that begins with "C_FLEX_ITEM_DISP" enter
<?rep_field="T1_G2"?>
For the fields belonging to the row that begins with "C_SHIP_TO_ADDRESS" enter
<?rep_field="T1_G3"?>
Figure 7-2 shows the entries for the Short Description/Tooltip field.
Figure 7-2 Entries for the Short Description/Tooltip Field
(Optional) Align the fields. To ensure proper alignment of a row of fields, it is recommended that you use Adobe Acrobat's alignment feature.
This section describes how to add the following page features to the PDF layout:
To add page numbers, define a field in the layout where you want the page number to appear and enter an initial value in that field.
To add page numbers:
Decide the position on the layout where you want the page number to be displayed.
Create a placeholder field called @pagenum@ (See Section 7.5.2, "Creating a Text Placeholder.")
Enter a starting value for the page number in the Default field (Text Field Properties > Options tab). If the XML data includes a value for this field, then the start value that is assigned in the layout is overridden. If no start value is assigned, then it defaults to 1.
You can define a page break in the layout to occur after a repeatable field. To insert a page break after the occurrence of a specific field, add the following to the syntax in the Tooltip field of the Text Field Properties dialog:
page_break="yes"
For example:
<?rep_field="T1_G3", page_break="yes"?>
The following example demonstrates inserting a page break in a layout. The XML sample contains salaries of employees by department:
<?xml version="1.0"?> <! - Generated by Oracle Reports version 6.0.8.22.0 - > <ROOT> <LIST_G_DEPTNO> <G_DEPTNO> <DEPTNO>10</DEPTNO> <LIST_G_EMPNO> <G_EMPNO> <EMPNO>7782</EMPNO> <ENAME>CLARK</ENAME> <JOB>MANAGER</JOB> <SAL>2450</SAL> </G_EMPNO> <G_EMPNO> <EMPNO>7839</EMPNO> <ENAME>KING</ENAME> <JOB>PRESIDENT</JOB> <SAL>5000</SAL> </G_EMPNO> <G_EMPNO> <EMPNO>125</EMPNO> <ENAME>KANG</ENAME> <JOB>CLERK</JOB> <SAL>2000</SAL> </G_EMPNO> <G_EMPNO> <EMPNO>7934</EMPNO> <ENAME>MILLER</ENAME> <JOB>CLERK</JOB> <SAL>1300</SAL> </G_EMPNO> <G_EMPNO> <EMPNO>123</EMPNO> <ENAME>MARY</ENAME> <JOB>CLERK</JOB> <SAL>400</SAL> </G_EMPNO> <G_EMPNO> <EMPNO>124</EMPNO> <ENAME>TOM</ENAME> <JOB>CLERK</JOB> <SAL>3000</SAL> </G_EMPNO> </LIST_G_EMPNO> <SUMSALPERDEPTNO>9150</SUMSALPERDEPTNO> </G_DEPTNO> <G_DEPTNO> <DEPTNO>30</DEPTNO> <LIST_G_EMPNO> . . . </LIST_G_EMPNO> <SUMSALPERDEPTNO>9400</SUMSALPERDEPTNO> </G_DEPTNO> </LIST_G_DEPTNO> <SUMSALPERREPORT>29425</SUMSALPERREPORT> </ROOT>
Suppose the report requirement is to display the salary information for each employee by department as shown in Figure 7-3.
Figure 7-3 Department Salary Summary Example
To insert a page break after each department, insert the page break syntax in the Tooltip field for the SUMSALPERDEPTNO field as follows:
<?rep_field="T1_G3", page_break="yes"?>
The Text Field Properties dialog for the field is shown in Figure 7-4.
Figure 7-4 The Text Field Properties Dialog
Note that in order for the break to occur, the field must be populated with data from the XML file.
The sample report with data is shown in Figure 7-5.
The page breaks after each department.
Adobe Acrobat provides a calculation function in the Field Properties dialog box.
To create a field to display a calculated total on a report:
Create a text field to display the calculated total. Give the field any Name you choose.
In the Field Properties dialog box, select the Format tab.
Select Number from the Category list.
Select the Calculate tab.
Select the radio button next to "Value is the <List of operations> of the following fields:"
Select sum (+) from the list.
Click the Pick... button and select the fields to be totaled.
Figure 7-6 shows the completed PDF layout.
The following sections describe runtime behavior of PDF templates:
As already noted, the placement, spacing, and alignment of fields that you create on the layout are independent of the underlying form layout. At runtime, BI Publisher places each repeating row of data according to calculations performed on the placement of the rows of fields that you created, as follows:
First occurrence:
The first row of repeating fields displays exactly where you have placed them on the layout.
Second occurrence, single row:
To place the second occurrence of the group, BI Publisher calculates the distance between the BODY_START tag and the first field of the first occurrence. The first field of the second occurrence of the group is placed this calculated distance below the first occurrence.
Second occurrence, multiple rows:
If the first group contains multiple rows, then the second occurrence of the group is placed the calculated distance below the last row of the first occurrence.
The distance between the rows within the group is maintained as defined in the first occurrence.
When you define a field in the layout, you have the option of selecting "Read Only" for the field, as shown in Figure 7-7:
Figure 7-7 Read Only Option in The Text Field Properties Dialog
Regardless of what you choose at design time for the Read Only check box, the default behavior of the PDF processing engine is to set all fields to read-only for the output PDF. You can change this behavior using the following report properties, as described in Chapter 10, "Setting Report Processing and Output Document Properties":
all-field-readonly
all-fields-readonly-asis
remove-pdf-fields
Note that in the first two options, you are setting a state for the field in the PDF output. The setting of individual fields can still be changed in the output using Adobe Acrobat Professional. Also note that because the fields are maintained, the data is still separate and can be extracted. In the third option, "remove-pdf-fields" the structure is flattened and no field/data separation is maintained.
To make all fields updatable:
Set the "all-field-readonly" property to "false". This sets the Read Only state to "false" for all fields regardless of the individual field settings at design time.
To make all fields read only:
This is the default behavior. No settings are required.
To maintain the Read Only check box selection for each field:
To maintain the setting of the Read Only check box on a field-by-field basis in the output PDF, set the property "all-fields-readonly-asis" to "true". This property overrides the settings of "all-field-readonly".
To remove all fields from the output PDF:
Set the property "remove-pdf-fields" to "true".
When multiple pages are required to accommodate the occurrences of repeating rows of data, each page displays identically except for the defined repeating area, which displays the continuation of the repeating data. For example, if the item rows of the purchase order extend past the area defined on the layout, succeeding pages displays all data from the purchase order form with the continuation of the item rows.
There are many PDF forms available online that you may want to use as layouts for the report data. For example, government forms that your company is required to submit. You can use these downloaded PDF files as the report layouts, supplying the XML data at runtime to fill in the report fields.
Some of these forms already have form fields defined, some do not. See Section 7.11.1, "Determining If a PDF Has Form Fields Defined" if you are unsure. If the PDF form already has fields defined, then you can use one of the following methods to match the form field names to the data field names:
Use Adobe Acrobat Professional to rename the fields in the document to match the names of the elements in the XML data file. See Section 7.11.2, "Using a Predefined PDF Form as a Layout by Renaming the Form Fields."
Use BI Publisher's Data Model Editor to rename the XML element names in the data file to match the field names in the PDF form. For information,"Structuring Data" in Oracle Fusion Middleware Data Modeling Guide for Oracle Business Intelligence Publisher.
If the form fields are not already defined in the downloaded PDF, then you must create them. See Section 7.4, "Adding Markup to the Template" for instructions on inserting the form field placeholders.
To determine if the PDF form has form fields defined:
Open the document in Adobe Acrobat Reader or Adobe Acrobat Professional.
Click Highlight Fields. Form fields that exist in the document are highlighted.
To get a list of the field names:
Open the document in Adobe Acrobat Professional.
From the Form menu, select Add or Edit Fields. The field names display in the document as well as in the Fields pane.
To use a predefined PDF form as a layout:
Download or import the PDF file to the local system.
Open the file in Adobe Acrobat Professional.
From the Form menu, select Add or Edit Fields. This highlights text fields that have already been defined.
Figure 7-8 shows a sample W-2 PDF form after selecting Add or Edit Fields to highlight the text fields.
Figure 7-8 A Sample W-2 PDF Form After Selecting the Add or Edit Fields Option
To map the existing form fields to the data from the incoming XML file, rename the fields to match the element names in the XML file.
Open the form field Text Field Properties dialog by either double-clicking the field, or by selecting the field then selecting Properties from the right-mouse menu.
In the Name field, enter the element name from the input XML file.
Repeat for all fields that you want populated by the data file.
When all fields have been updated, click Close Form Editing.
Save the layout.
The comb of characters option for a PDF form field in Adobe Acrobat spreads the text evenly across the width of the text field. Use this option when the form field requires the characters to be entered in specific positions, as the Routing number field shown in Figure 7-9:
To use this feature, perform the following:
In Adobe Acrobat Professional, add the form field as a text field. An example is shown in the following figure:
Open the Text Field Properties dialog and click the Options tab. Clear all check boxes and select the Comb of characters check box.
Note:
The Comb of characters option is only enabled when all other options are cleared.
Enter the number of characters in the text field. For the routing number example, a value of 9 is entered as shown in the following figure:
If your data may not contain the number of characters specified each time, you can set the Alignment option to specify whether the value will be aligned to the right, left, or center within the field.
When you run the report, the characters comprising the value for the routing field will be spread across the text field as shown in Figure 7-10:
Figure 7-10 shows how the data will display in the field when the data for the routing field does not contain the full nine characters and the Alignment option is set to left:
Oracle BI Publisher supports digital signatures on PDF output documents. Digital signatures enable you to verify the authenticity of the documents you send and receive. Oracle BI Publisher can access the digital ID file from a central, secure location and at runtime sign the PDF output with the digital ID. The digital signature verifies the signer's identity and ensures that the document has not been altered after it was signed.
Implementing digital signature requires several tasks across the BI Publisher product. This topic describes how to add a new field or configure an existing field in the PDF template for the digital signature. For more information and a description of the other required tasks and options, see the "Implementing a Digital Signature" section in Oracle Fusion Middleware Administrator's Guide for Oracle Business Intelligence Publisher.
For PDF templates you have the following options for designating a digital signature field for the output report:
Add a signature field to the PDF layout.
Use this option if you want the digital signature to appear in a specific field and the PDF template does not already include a signature field. See Section 7.12.2, "Adding a Signature Field."
Use an existing signature field in the PDF template.
Use this option if the PDF template already includes a signature field that you want to use. To designate an existing field for the digital signature, define the field in the Runtime Configuration page. See Section 7.12.3, "Configuring the Report to Insert the Digital Signature at Runtime."
Designate the position of the digital signature on the output report by setting x and y coordinates.
Use this option if you prefer to designate the x and y coordinates for the placement of the digital signature, rather than use a signature field. You set the position using runtime properties. For information on setting these properties, see Section 10.4, "PDF Digital Signature Properties."
All three options require setting configuration properties for the report in the Report Properties page after you have uploaded the template.
To add a signature field:
Open the template in Adobe Acrobat Professional.
From the Form menu, select Add or Edit Fields. Then click Add New Field. Choose Digital Signature from the list of fields.
Draw the signature field in the desired location on the layout. When you release the mouse button, a dialog prompts you to enter a name for the field.
Enter a name for the signature field. Figure 7-12 shows an inserted digital signature field called "My_Signature."
Figure 7-12 An Inserted Digital Signature Field Called My_Signature
Save the template.
Proceed to Section 7.12.3, "Configuring the Report to Insert the Digital Signature at Runtime."
After you have uploaded the PDF template to the report definition (see Section 2.6.2, "Adding a Layout by Uploading a Template File"), you must enable digital signature and specify the signature field in the Report Properties.
To configure the report to insert the digital signature:
From the edit report page, click Properties and then click the Formatting tab.
Scroll to the PDF Digital Signature group of properties.
Set Enable Digital Signature to True.
For the property Existing signature field name, enter the field name from the PDF template.
No other properties are required for this method.
The following figure shows the "My_Signature" field name entered into the properties field.
Figure 7-13 The My_Signature Field Entered into the Properties Field
Click OK.
Note that the runtime properties that you have just set are at the report level and not the layout level. Therefore any layouts associated with the report now include the digital signature as specified in the Report Properties. When an Existing signature field name is specified, the template must contain the field for the signature to be applied.