Skip Headers

Oracle Fusion Middleware Report Designer's Guide for Oracle Business Intelligence Publisher
Release 11g (11.1.1)
Part Number E13881-01
Go to Table of Contents
Contents
Go to previous page
Previous
Go to next page
Next

Techniques for Handling Large Output Files

This appendix covers the following topics:

Techniques for Handling Large PDF Output Files

This section describes techniques available to improve performance when your report generates very large PDF output files. The techniques discussed in this chapter are:

Reusing Static Content

This section describes how to reuse static, repeating content in your PDF report output to reduce the overall PDF file size. This section contains the following topics:

What Is Static Content Reuse?

If your report contains static content and the placement of that content in the report is also fixed (for example, a set of instructions on the back of a Federal W-2 form), you can use this feature of BI Publisher to reduce the size of the generated PDF file.

Using the W-2 form as an example, the report has the following expected output:

the picture is described in the document text

For each employee, specific content is rendered, but the back (or second) page of each contains an identical set of instructions.

This set of instructions can be defined as reusable static content. When content is identified as reusable static content, BI Publisher will include the static content in the generated PDF document only once and reference it in other places when needed, thereby reducing the overall output file size.

Limitations of this Feature

This feature has the following limitations:

Defining Reusable Content in an RTF Template

To define the static content to be reused, use the following tags around the content in your template as follows:

<?reusable-static-content:?>

…. static content here …

<?end reusable-static-content?>

Inserting these tags around the static content signals BI Publisher to include this content only once in the generated file and then reference it in the same position for each occurrence.

Example

The following example illustrates an implementation of this feature. The sample report generates one occurrence per employee. The generated report will have employee-specific information on the front page of each occurrence, and static instructions that will print on the back of each occurrence. A section break will occur after each employee to reset page numbering.

The following illustrates this template structure:

the picture is described in the document text

Generating Zipped PDF Output

When generating PDF output, BI Publisher does not limit the size of the output file. However, when the size of the file approaches 2 GB, Adobe Acrobat Reader may no longer be able to open or handle the file.

BI Publisher provides a feature to split a large PDF output file into smaller, more manageable files, while still maintaining the integrity of the report as one logical unit.

When PDF output splitting is enabled for a report, the report is split into multiple files generated in one zip file. The output type is PDFZ. For easy access to the component files, BI Publisher also generates an index file that specifies from and to elements contained in each component PDF file.

To enable this feature, the report designer must set up the report using the methods described in this section.

Limitations and Prerequisites

Design Time Considerations

To enable report splitting, the report designer must determine the following:

Selecting the Output Type

After uploading the template to the report definition, enable Zipped PDFs as an output type:

the picture is described in the document text

When scheduling the report, select PDFZ as the output type.

the picture is described in the document text

Implementing PDF Splitting for an RTF Template

This section describes how to enable PDF splitting for reports generated from RTF templates. This section includes the following topics:

Entering the Commands in Your RTF Template

When you design your template to use this feature, you must add commands to specify the following:

To achieve this, the following two commands must be entered in your template within the for-each loop of the element by which you want the document to split:

Example - split by each department

This example is based on the following XML data:

<DATA_DS>
 <G_EMP>
  <DEPARTMENT_NAME>Sales</DEPARTMENT_NAME> 
  <FIRST_NAME>Ellen</FIRST_NAME> 
  <LAST_NAME>Abel</LAST_NAME> 
  <HIRE_DATE>1996-05-11T00:00:00.000-07:00</HIRE_DATE> 
  <SALARY>11000</SALARY> 
 </G_EMP>
 <G_EMP>
  <DEPARTMENT_NAME>Sales</DEPARTMENT_NAME> 
  <FIRST_NAME>Sundar</FIRST_NAME> 
  <LAST_NAME>Ande</LAST_NAME> 
  <HIRE_DATE>2000-03-24T00:00:00.000-08:00</HIRE_DATE> 
  <SALARY>6400</SALARY> 
 </G_EMP>
 <G_EMP>
  <DEPARTMENT_NAME>Shipping</DEPARTMENT_NAME> 
  <FIRST_NAME>Mozhe</FIRST_NAME> 
  <LAST_NAME>Atkinson</LAST_NAME> 
  <HIRE_DATE>1997-10-30T00:00:00.000-08:00</HIRE_DATE> 
  <SALARY>2800</SALARY> 
 </G_EMP>
 <G_EMP>
  <DEPARTMENT_NAME>IT</DEPARTMENT_NAME> 
  <FIRST_NAME>David</FIRST_NAME> 
  <LAST_NAME>Austin</LAST_NAME> 
  <HIRE_DATE>1997-06-25T00:00:00.000-07:00</HIRE_DATE> 
  <SALARY>4800</SALARY> 
 </G_EMP>

...
</DATA_DS>

In this example, the output PDF report includes a document for each employee. You want a new PDF file generated for each department. You want the index to list the FIRST_NAME and LAST_NAME from each record that is included in the PDF file.

To achieve this output, enter the following in your template

<?for-each-group:ROW;./DEPARTMENT_NAME?>
<?for-each:current-group()?>
<?catalog-index-info:'First Name';FIRST_NAME?>
<?catalog-index-info:'Last Name';LAST_NAME?>
...
<?end for-each?>
<?document-split:?>
<?end for-each-group?>

Implementing PDF Splitting for a PDF Template

This section describes the commands required in a PDF template to split the output into multiple PDF files.

Entering the Commands in the PDF Template

To enable this feature for a PDF template, enter the following three form fields in your template with the specified commands in the "Tooltip" field:

Form Field Name Tooltip Command
REPEAT-ELEMENT <?repeat-element:element name?>
where
element_name is the XML tag name of the repeating element that will be counted.
Example:
<?repeat-element:emp_id?>
CATALOG-INDEX-INFO <?catalog-index-info:'Name';element_name?>
where
'Name' is the label that will appear in the index file for the element_name that you specify. The index will generate a "From" and "To" listing for each file in the zipped set.
Example:
<?catalog-index-info:'Last Name';LAST_NAME?>
Note that you can include multiple occurrences of the catalog-index-info command to include multiple data elements in the index file.
SPLIT-COUNT <?split-count:n?>
where
n is the number of occurrences of the repeat-element that will trigger the creation of a new file.
Example:
<?split-count:10000?>