Oracle Application Server Reports Services Publishing Reports to the Web 10g (9.0.4) Part Number B10314-01 |
|
Adobe Portable Document Format (PDF) is a universal file format that preserves all the fonts, formatting, graphics, and color, of any source document regardless of the application and platform used to create it. Oracle Reports was one of the first report generation tools to embrace this technology and generate quality PDF documents.
This chapter contains the following main sections:
This section contains information on the various PDF features supported by Oracle Reports. This includes compression, font aliasing, font subsetting, font embedding, accessibility, and taxonomy.
This section contains information on resolving PDF font issues that occur when you design a report on a Windows platform and deploy it on a UNIX platform.
This section contains information on how to generate a PDF file using Unicode character sets.
This section contains information on how to generate a PDF file using bidirectional (BiDi) languages such as Hebrew and Arabic.
This section contains information on how to generate a PDF file using multbyte fonts.
This section contains information on how to generate a Barcode PDF file.
Oracle Reports supports PDF 1.4 and is capable of generating high fidelity PDF reports on all platforms. The PDF features supported by Oracle Reports include:
PDF compression decreases the PDF file size, thereby reducing the time spent in downloading the PDF file.
The amount of space saved using compression varies based on the contents of the report, for example, the number of images versus the size of the content.
Compressed files are about one fifth the size of the original file. Testing has shown that the best case compression ratio of one-eigth to the worst case compression ratio of one-half was achieved based on the contents in the original file.
Oracle Reports implements a command line option to control the compression level of the PDF output. The PDF output from Oracle Reports is compressed, by default, and can be switched off or varied using the command line option: PDFCOMP.
Table 6-1 indicates which commands can use the PDFCOMP
keyword.
rwclient | rwrun | rwbuilder | rwconverter | rwservlet | rwcgi | rwserver |
---|---|---|---|---|---|---|
yes |
yes |
no |
no |
yes |
yes |
no |
Use PDFCOMP
to specify whether PDF output should be compressed.
PDFCOMP=
value
|{YES|NO}
value
Any value 0 through 9. A value of 0 means the PDF file will not be compressed. A value of 1 through 9 will compress the PDF file and permit users to control the compression level.
YES
Compresses output at compression level 6.
NO
Compresses output at compression level 0 (no compression).
6
Although compressed files download quickly, the time taken to generate a compressed file is much slower when compared to a non-compressed file.
Font aliasing enables you to substitute one font for another, i.e., font-to-font substitution. This font-to-font substitution is usually used when porting applications (in this case, your PDF file) across platforms. You can alias multibyte fonts as well as character sets.
Font aliasing occurs at the time of generating the PDF file. The PDF file will contain only the necessary font information required to display the output. The fonts used will not be embedded in the PDF file.
At the time of viewing the report, Adobe Acrobat replaces the aliased fonts based on the following:
Adobe
Sans
MM
font.
Adobe
Sans
MM
font does not match, the output may display dots for the data.
Font aliasing will work with any or all of the following:
There are no command line options for font aliasing.
Include the font aliasing entries in the uifont.ali
file. Oracle Reports aliases the font only when the entries in the uifont.ali
file match the font information included in the generated PDF file.
Note:
The
The |
The section for font aliasing in the uifont.ali
file is [PDF]
.
The entry in the uifont.ali
file for:
[PDF] "Font Name"="Font Name"
[PDF] Character Set = "Font Name"
or
"Font Name"....Character Set="Font Name"
Here is an example of a font aliasing entry in the uifont.ali
file:
[ PDF ] /*Alias TrueType to available Type 1 font */ "Kino MT" = UtopiaBold /*Alias multibyte to available CID font */ .....SJIS = "HeiseiKakuGo-W5-Acro"
where:
Kino MT
character found, with the UtopiaBold
equivalent.
.....SJIS = "HeiseiKakuGo-W5-Acro"
, Oracle Reports substitutes every multibyte character set found, with the HeiseiKakuGo-W5-Acro
(CID) equivalent.
If font aliasing does not work, verify that:
uifont.ali
file is incorrect.
[PDF]
section name in the uifont.ali
file has not been modified as Oracle Reports parses the file for the section name.
PDF font subsetting is a variant of PDF font embedding. This option includes only the glyphs and character information that is actually used in the document.
With font subsetting, there is no dependency on the machine having the fonts installed. PDF font subsetting works for both single and multibyte fonts and is the preferred method of creating multibyte reports.
There are no command line options for font subsetting.
Before using the font subsetting feature you must:
REPORTS_PATH
environment variable. Oracle Reports looks for fonts in the path specified in the REPORTS_PATH
environment variable when generating a PDF file.
uifont.ali
file. Oracle Reports subsets the fonts only when the font entries listed in the uifont.ali
file exist in the PDF file being generated.
The section for font subset in the uifont.ali
file is [PDF:Subset]
.
The entry in the uifont.ali
file is :
[PDF:Subset] Font Name = "Font File Name"
The file name entries should be enclosed within quotes; however, only font names containing two or more words should be enclosed within quotes.
The font file name referenced in the uifont.ali
file must match the existing font file name for font subsetting to work correctly.
[PDF:Subset] Arial = "Arial.ttf"
When you subset a font in a PDF file, it becomes a custom font because it contains only those characters needed for the report output.
Using Adobe Acrobat 3.0 or higher, you can view the fonts used in your report:
For optimum viewing, we recommend that you use Adobe Acrobat Reader 5.0 and set the following parameters in Adobe Acrobat Reader:
PDF font subsetting in Oracle Reports works with TrueType fonts only and not with Type1 fonts. To include specific TrueType fonts in your report, convert Type1 fonts to TrueType fonts using available 3rd party tools.
There is a limitation on UNIX platforms when working with TrueType fonts. To work around this issue do the following:
REPORTS_PATH
environment variable.
If font subsetting does not work, verify the following:
uifont.ali
file is incorrect.
filename
.ttf/
filename
.ttc
.
REPORTS_PATH
environment variable. When generating a PDF file, Oracle Reports looks for fonts in the path specified in the REPORTS_PATH
environment variable.
[PDF:Subset]
section name in the uifont.ali
file has not been modified. Oracle Reports parses the file looking for the section name.
Refer to Designing the Report on Windows and Deploying it on UNIX, for more information on running a report on UNIX machines.
PDF font embedding is the process of including the entire font set along with the data in the PDF file. PDF font subsetting and font embedding are mutually exclusive.
PDF font embedding in Oracle Reports is for Type1 fonts only (either single or multibyte fonts) and not for TrueType fonts. Convert TrueType fonts to Type1 fonts using available 3rd party tools in order to include specific Type1 fonts in your report.
PDF font embedding with Oracle Reports occurs between a font and a set of font file names.
The setup for PDF embedding includes:
[PDF:Embed]
The command line option PDFEMBED
is used to specify whether Oracle Reports will embed the Type1 postscript fonts specified in the uifont.ali
file into the PDF output.
Table 6-2 indicates which commands can use the PDFEMBED
keyword.
rwclient | rwrun | rwbuilder | rwconverter | rwservlet | rwcgi | rwserver |
---|---|---|---|---|---|---|
yes |
yes |
no |
no |
yes |
yes |
no |
Use PDFEMBED
to specify whether Oracle Reports will embed the Type1 PostScript font file(s) specified in the uifont.ali
file into PDF output.
PDFEMBED={YES|NO}
YES
The PDF driver will embed the font(s) specified in the [PDF:Embed]
header of the uifont.ali
file into the PDF output.
NO
The font(s) will not be added to PDF output.
YES
The section for font aliasing in the uifont.ali
file is [PDF:Embed]
.
(Windows only) The entry in the uifont.ali
file should be:
Font Name = "Font Name.pfm Font Name.pfb"
(UNIX only) The entry in the uifont.ali
file
should be:
Font Name = "Font Name.afm Font Name.pfa"
[PDF:Embed] Symbol = "Symbol.pfm Symbol.pfb"
In Example 6-1, the Symbol font is embedded into the PDF file. This ensures portability by:
font.
If PDF font embedding does not work, verify the following:
uifont.ali
file is incorrect.
REPORTS_PATH
environment variable is correct. When generating the PDF file, Oracle Reports looks for fonts in the paths specified in the REPORTS_PATH
environment variable.
[PDF:Embed]
section name in the uifont.ali
file has not been modified. Oracle Reports parses the file looking for the section name.
Font Name="fontfilename.pfm/.afm file fontfilename.pfb/.pfa file".
For example (Windows):
UtopiaMediumItalic = "UtopiaMediumItalic.pfm UtopiaMediumItalic.pfb"
The precedence order for the same font in multiple places within the uifont.ali
file is as follows:
For example, if you have included the same font entries for both font embedding and font subsetting, then font embedding will override font subsetting. This is assuming you have not set the command line option of PDFEMBED=NO
.
For all font features --font aliasing, font subsetting, and font embedding--include the specific entries first followed by the generic entries. For example, if you want to subset Arial Plain, Arial Bold, Arial Italic, and Arial Bold-Italic fonts, your entries should be in the following order:
[ PDF:Subset ] Arial..Italic.Bold.. = "Arialbi.ttf" Arial...Bold.. = "Arialb.ttf" Arial..Italic... = "Ariali.ttf" Arial..... = "Arial.ttf"
If the plain Arial..... = "Arial.ttf"
entry appears first, then all the styles of the Arial font in the layout will be subset as Arial Plain font. Here is a sample of a portion of the uifont.ali
file for all the PDF entries containing all three PDF sections:
[ PDF ] Palatino = "Kino MT.ttf" [ PDF:Subset ] Garmond..Italic.Bold.. = "Garmacbi.ttf" Garmond...Bold.. = "Garmacb.ttf" Garmond..Italic... = "Garmaci.ttf" Garmond..... = "Garamac.ttf" [ PDF:Embed ] Arial = "Arial.pfm Arial.pfb"
[PDF] Arial.10.Italic = "Times New Roman".12.Italic.Bold "Courier New" = Symbol [PDF:Embed] "Times New Roman".14..Bold = "TimesBold.pfm TimesBold.pfb" [PDF:Subset] Verdana..Italic.Bold = "Verdanaz.ttf" Verdana...Bold = "Verdanab.ttf"
Oracle Reports provides several ways for you to include accessibility features in your PDF file. The PDF format file follows the tagged-PDF standard defined in PDF 1.4. This standard along with Acrobat Reader 5 (or higher) provides you with features for inclusion in the paper layout. The command line option to include accessibility features in your output is ACCESSIBLE
.
Table 6-4 indicates which commands can use the ACCESSIBLE
keyword.
rwclient | rwrun | rwbuilder | rwconverter | rwservlet | rwcgi | rwserver |
---|---|---|---|---|---|---|
yes |
yes |
yes |
no |
yes |
yes |
no |
Use ACCESSIBLE
to specify whether accessibility-related features offered through Oracle Reports are enabled (YES
) or disabled (NO
) for the PDF file.
ACCESSIBLE={YES|NO}
YES
Accessibility features are enabled for PDF file.
NO
Accessibility features are not enabled for PDF file.
NO
Using the additional properties (Figure 6-4), you can provide the required information necessary for generating PDF documents that can be interpreted by assistive technology. For more information on accessibility, see the Creating Accessible Enterprise Reports using Oracle9i Reports white paper on (http://otn.oracle.com
)under Accessibility.
A PDF document can include global information about itself such as the document's title, author, creation and modification dates. This global information proves useful at the time of cataloguing or searching for documents in external databases.
Oracle Reports provides properties to enable such a classification, otherwise known as taxonomy. They are:
Refer to the Reports Builder online help for more information on the taxonomy properties.
Oracle Reports now provides enhanced support for graphs in PDF. This includes specifying a higher dots per inch (DPI) value to increase or improve the image resolution of the graph. The improved graph support enables you to scale the graph without compromising on the image quality.
The environment variable is REPORTS_GRAPH_IMAGE_DPI
.
The REPORTS_GRAPH_IMAGE_DPI
environment variable specifies a dots per inch (DPI) value for graphs being output to a printer (PDF, PostScript, or PCL). This environment variable allows you to increase the earlier fixed default value of 72 DPI, which helps in improving the image resolution for printed (PDF, PostScript, or PCL) graphs.
72 through 300
250
reports.sh
.
REPORTS_JVM_OPTIONS
to avoid the Out Of Memory
error for the JVM. See REPORTS_JVM_OPTIONS, for more information on setting the JVM options
There are font and text alignment issues when you design a report (single byte or multibyte) on the Windows platform and deploy it on a UNIX platform. The reason is that the font handling and windowing system are completely different across the two platforms.
Your report is designed and deployed on the same platform, e.g., Windows:
Your report is designed on the Windows platform and deployed on the UNIX platform.
(Windows) You use the TrueType fonts located in the Windows machine. Oracle Reports queries the font information from the Windows system for formatting the report.
(UNIX) When this report is sent to PDF on Solaris or any other UNIX platforms, there are two stages:
[PDF]
section of the uifont.ali
file. For font subsetting, Oracle Reports refers to the [PDF: Subset]
section and subsets the TrueType fonts from the given location. The subsetted fonts are then embedded in the PDF file.
This section outlines the steps involved in generating a PDF report (using single byte fonts) designed on the Windows platform on either Solaris or any other UNIX platform. These steps are required only if you see font alignment issues in your PDF output.
arial.ttf
and tahoma.ttf
.
arial.ttf
and tahoma.ttf
) and your report's .rdf
file to the UNIX platform. The path for the font files should be ORACLE_HOME/font folder
. Add the font file's path to the REPORTS_PATH
environment variable.
(arial.ttf
and tahoma.ttf)
.
arial.afm
and tahoma.afm
) generated to ORACLE_HOME
/guicommon9/tk90/admin/AFM.
TK_PRINTER
environment variable or the PRINTER
environment variable is set to the printer name. For example, hrprinter
.
uiprint.txt
file has the following entry:
printer name:PostScript:2:test:default.ppd:
For example:
hrprinter:PostScript:2:test:default.ppd:
ppd
file.
*Font arial: Standard "(001.001)" Standard ROM *Font tahoma: Standard "(001.001)" Standard ROM
PDF:Subset
] section at this time in the uifont.ali
file.
uifont.ali
file:
[ PDF:Subset ] "arial" = "arial.ttf" "tahoma" = "tahoma.ttf"
To confirm that the fonts are subset in the PDF file:
There are additional steps for generating reports with multibyte fonts. The steps involved in resolving font issues with PDF subsetting when deploying multibyte reports on UNIX platforms are as follows:
h2mjsm.ttf
and the KO16KSC5601
character set.
h2mjsm.ttf
and your report's .rdf
file to the UNIX platform. The font file path should be $ORACLE_HOME/
font folder
. Add the font file's path to the REPORTS_PATH
environment variable.
h2mjsm.ttf
.
$ORACLE_HOME/guicommon9/tk90/admin/AFM/. % cp h2mjsm.afm ORACLE_HOME/guicommon9/tk90/admin/AFM/h2mjsm
TK_PRINTER
environment variable or the PRINTER
environment variable is set to the printer name. For example, hrprinter
.
uiprint.txt
file has the following entry:
printer name:PostScript:2:test:default.ppd:
For example:
hrprinter:PostScript:2:test:default.ppd:
.ppd
file:
*DefaultFont: h2mjsm *Font h2mjsm: Special "(001.001)" Special ROM
*%Font Symbol: Special "(001.001)" Special ROM
uifont.ali
file to mention the font used for the character set:
The
The
Note:
uifont.ali
file is located in:
uifont.ali
file is the configuration file controlling all the Oracle Reports PDF font enhancements. Refer to Managing Fonts in Oracle Reports, for more information.
[ Global ] .....ko16ksc5601 ="h2mjsm" [ Printer:PostScript2 ] .....ko16ksc5601 ="h2mjsm"
[PDF]
or [PDF:Subset]
sections at this time in the uifont.ali
file.
uifont.ali
file to enable PDF subsetting:
[ PDF:Subset ] "h2mjsm"="h2mjsm.ttf"
To confirm that the fonts are subset in the PDF file:
There might be some variations in the alignment, as the font metrics handling is different in UNIX and Windows. This issue cannot be avoided.
A PDF file generated with the font subsetting enabled might have some font style issues (e.g., some content could be displayed as bold) when viewed in Acrobat Reader. This is because Acrobat Reader has a limitation while displaying the Type 3 fonts. See Recommended for more information on how to smoothen the display for Type 3 fonts.
Note:
This section outlines the steps involved in generating a PDF file with a Unicode character set.
The steps involved in generating a Unicode PDF file using the font subsetting feature are as follows:
NLS_LANG=AMERICAN_AMERICA.UTF8.
REPORTS_PATH
to the font directory in which the TrueType font exists. For example, C:\WINNT\Fonts
.
uifont.ali
file and edit the [PDF:Subset]
section to specify the TrueType font name.
Example
[ PDF:Subset ] "Andale Duospace WT J" = "Aduoj.ttf" "Albany WT J"="AlbanWTJ.ttf"
The specified font should cover the Unicode range that your report uses.
MLS
data with DESTYPE=FILE DESFORMAT=PDF.
This section outlines the steps involved in generating a PDF file for bidirectional (BiDi) languages.
Oracle Reports provides two environment variables that resolve font re-shaping and numeric options with bidirectional (BiDi) languages, such as Hebrew and Arabic. They are:
This environment variable switches the layout algorithm for bidirectional (BiDi) languages (for example, Arabic or Hebrew). The valid values for this environment variable are ORACLE
or UNICODE
.
This environment variable specifies the numeric format for Arabic PDF output.
The steps involved in generating a PDF file for bidirectional (BiDi) languages using the font subsetting feature are as follows:
NLS_LANG=ARABIC_EGYPT.AR8MSWIN1256
(or AR8ISO8859P6
on UNIX)
REPORTS_PATH
to the font directory in which the TrueType font exists. For example, C:\WINNT\Fonts
.
uifont.ali
file and edit the [PDF:Subset]
section to specify the TrueType font name.
Example
[PDF:Subset] "Andale Duospace WT J" = "Aduoj.ttf" "Albany WT J"="AlbanWTJ.ttf"
DESTYPE=FILE DESFORMAT=PDF
.
This section outlines the steps involved in generating a PDF file with multibyte fonts.
Figure 6-5 outlines the mapping table between Oracle NLS_CHARACTERSET
, CMap name, and its CID font name used in aliasing pdf.
(*) Those fonts are available Adobe in Acrobat Reader Version 5
(**) Those fonts are available Adobe in Acrobat Reader Version 4
It is recommended that you use Version 5 CIDFonts(*) with Acrobat Reader 5.0 in order to avoid unexpected font mapping, which results in multibyte characters overlapping.
The steps involved in generating a PDF file for multibyte fonts using the font aliasing feature are as follows:
NLS_LANG=JAPANESE_JAPAN.JA16SJIS
(or JA16EUC
on UNIX)
uifont.ali
file located and set the font alias under the [PDF]
section.
Example
[ PDF ] .....JA16SJIS = "KozMinPro-Regular-Acro" "MS UI Gothic".....JA16SJIS = "KozMinPro-Regular-Acro"
MS UI Gothic
).
DESTYPE=FILE DESFORMAT=PDF
.
If you view the PDF file with the Japanese version of Acrobat Reader 4.0/5.0 on the Japanese version of Windows, you do not need to install the Japanese font pack.
The steps involved in generating a PDF file for multibyte fonts using the font subsetting feature are as follows:
NLS_LANG=JAPANESE_JAPAN.JA16SJIS
(or JA16EUC
on UNIX)
REPORTS_PATH
environment to the font directory in which the TrueType font exists. For example, C:\WINNT\Fonts
.
uifont.ali
file located in the ORACLE_HOME
\tools\common90
directory and edit it at the [PDF:Subset]
section to specify the TrueType font name.
Example
[ PDF:Subset ] "Andale Duospace WT J" = "Aduoj.ttf" "Albany WT J"="AlbanWTJ.ttf" "MS UI Gothic" = "msgothic.ttc"
DESTYPE=FILE DESFORMAT=PDF
.
This section outlines the steps involved in generating a PDF file with barcode information.
The steps involved in generating a barcode PDF file using the font embedding feature are as follows:
REPORTS_PATH
environment variable to the font directory containing the Type1 font.
uifont.ali
file and include the following under the font embed [PDF:Embed]
section.
Example
[ PDF:Embed ] SAdHC39a = "SAdHC39a.pfm SAdHC39a.pfb"
DESTYPE=FILE DESFORMAT=PDF
.
The steps involved in generating a barcode PDF file using the font subsetting feature are as follows:
REPORTS_PATH
environment variable to the directory containing the TrueType font. For example, C:\WINNT\Fonts
.
uifont.ali
file in the ORACLE_HOME
\tools\common90
directory and include the following under the [PDF:Subset]
section to specify the TrueType font name:
Example
[ PDF:Subset ] SAdHC39a = "SAdHC39a.ttf"
DESTYPE=FILE DESFORMAT=PDF.
|
![]() Copyright © 2003 Oracle Corporation. All Rights Reserved. |
|