In this section: |
Reference: |
PDF (Adobe Acrobat Portable Document Format) is most often used to distribute and share electronic documents through the web. It is especially useful if you want a report to maintain its presentation and layout regardless of a browser or printer type. For details, see Using PDF Display Format.
PS (PostScript format), a print-oriented page description language, is most often used to send a report directly to a printer. While used less frequently as an online display format, you can display PS report output on your monitor before printing it. For details, see Using PostScript (PS) Display Format.
FOCUS generates a PDF or PS document from scratch. In order to do so, it must physically embed all the objects it displays or prints, including images and fonts, in the document itself.
When you execute a report request and specify PDF or PS as your format, FOCUS retrieves the data and begins to format the report. Fonts and images specified in the StyleSheet must be available to create the output file. FOCUS reads the font information from font files and embeds that information in the document.
To ensure that FOCUS can locate the required information, you must define and map it in the following files:
Note that the basic fonts delivered with FOCUS do not need PFA or PFB files. Acrobat Reader and PostScript printers already have the descriptions of these fonts.
Note: A Printer Metrics File (PFM) is also available. This file is used by applications such as Acrobat Reader for laying out text; however, it is not supported by FOCUS. You must use the AFM file.
When you produce a PostScript or PDF report, you need the following files:
Name |
Purpose |
z/OS |
---|---|---|
StyleSheet files. You can create them with a text editor (see Styling Reports). |
Define the styles in reports. |
Any member of the data set allocated to ddname FOCSTYLE. Alternatively, you can specify the StyleSheet in your report request and eliminate the need for a separate StyleSheet file. |
Adobe Font Metrics (AFM) files (supplied with FOCUS). |
Define the measurements of characters for PostScript and PDF output. |
Member names start with PS. Allocated to ddname ERRORS. |
Font location file (supplied with FOCUS). |
Maps font names to the Font Metrics files. |
Members FONTMAP and FONTUSER in the data set allocated to ddname ERRORS. |
Output files. You create these with a HOLD, SAVE, or SET command. |
Contain the formatted output. |
DDNAME is HOLD or the AS name assigned in the HOLD command. |
Note that if you add fonts, you also need PFA or PFB files for those fonts.
In this section: |
You can display a report as a PDF document. PDF (Adobe Acrobat Portable Document Format) supports most StyleSheet attributes, allowing for full report formatting. The wide range of StyleSheet features supported for PDF are described throughout this documentation.
PDF prints and displays a document consistently, regardless of the application software, hardware, and operating system used to create or display the document.
The report opens in Adobe Acrobat or Acrobat Reader within a web browser. To display a PDF report, a computer must have Adobe Acrobat Reader installed. For free downloads of Acrobat Reader, go to http://www.adobe.com.
Limit: Adobe Acrobat PDF format limits the number of pages, hyperlinks, and images in a document. For information about what limits this creates for a FOCUS report in PDF format, see Saving and Reusing Your Report Output.
Other print-oriented display formats. You can also display a report as a PostScript document. For more information, see Using PostScript (PS) Display Format.
In this section: |
Reference: |
Watermarks are images or text strings that are placed on the bottom layer of a document and displayed through the transparent layered content.
FOCUS backcolor does not support transparency. Therefore, standard images placed below it on the page may be obscured. To resolve this, in PDF reports, FOCUS mirrors the approach taken by standard printers, and places an opaque image on the top of the document layers. With this approach, the layers of the document will be visible beneath the transparent watermark image.
Watermark images are provided by the report developer. When creating a transparent image, the image needs to be created in GIF format with a transparent background.
Watermarks are supported for PDF output in compound reports and in single TABLE requests. Each document supports a single active watermark image. This image is designated as the watermark image, by defining the placement order within the Z-INDEX attribute.
The first image with a Z-INDEX value will be considered the active watermark for the current document. Any subsequent images, defined with style sheet attributes for Z-INDEX or OPACITY, will be displayed as standard FOCUS images.
Watermark images are designated by defining the following attributes in the style sheet for the transparent GIF.
Z-INDEX=TOP |
Designates that the image is to be handled as a watermark image and should always be placed on top of all other objects on the page. This value will be respected as the topmost layer and will be supported with other layers in future releases. |
OPACITY=n |
Where n represents the percent (%) of OPACITY to be applied to the image. The greater the OPACITY, the less transparent the image. Less of the underlying report will be visible below the image. The value for n can be any number from 0 through 100. If a value is not specified, it defaults to 100%, presenting a fully opaque image. |
Within a single TABLE request:
TYPE=<REPORT|HEADING>, OBJECT=IMAGE, IMAGE=<image.gif>, Z-INDEX=TOP, OPACITY=15, POSITION=(.25 .25), DIMENSION=(8 10.5),$
The following request against the GGSALES data source places the coffee image (coffee.gif) on the page and layers the watermark image (internalonlyport.gif) on top. These images are displayed on every page of the report.
TABLE FILE GGSALES SUM GGSALES.SALES01.DOLLARS/D12CM GGSALES.SALES01.UNITS/D12C GGSALES.SALES01.BUDDOLLARS/D12CM GGSALES.SALES01.BUDUNITS/D12C BY GGSALES.SALES01.REGION BY GGSALES.SALES01.CATEGORY BY GGSALES.SALES01.PRODUCT HEADING "Gotham Grinds" "Product Sales By Region" ON TABLE SET PAGE-NUM NOLEAD ON TABLE NOTOTAL ON TABLE HOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * INCLUDE = endeflt, TOPMARGIN=.5, BOTTOMMARGIN=.5, LEFTMARGIN=1, RIGHTMARGIN=1, $ TYPE=REPORT, OBJECT=IMAGE, IMAGE=internalonlyport.gif, POSITION=(+0.70000 +0.70000), SIZE=(7 7.5), Z-INDEX=TOP, OPACITY=15, $ TYPE=REPORT, OBJECT=IMAGE, IMAGE=coffee.gif, POSITION=(+1.0 +0.5), SIZE=(.5 .5), $ENDSTYLE END
The output is:
The following core PDF features are supported with watermarks:
In this section: |
WebFOCUS PDF report accessibility provides support for assistive technologies, such as screen readers.
Note: For information on accessibility principles and font types and usage, see the WebAIM website at https://webaim.org/techniques/fonts/#intro.
WebFOCUS PDF report output complies with accessibility requirements as a result of the following features:
Note: It is the responsibility of the report developer to follow general accessibility standards in order for the report to be 508 compliant.
How to: |
The SET ACCESSPDF command enables accessibility for PDF reports.
SET ACCESSPDF = {508|OFF}
ON TABLE SET ACCESSPDF {508|OFF}
where:
Generates a PDF file compliant with Section 508 accessibility requirements.
Generates a PDF file that is non-compliant with Section 508 accessibility requirements. This value is the default.
The following request generates accessible PDF report output. The SET and SUBHEAD commands that enable accessibility appear in boldface.
TABLE FILE GGSALES SUM DOLLARS/D12M BY REGION BY CATEGORY ON REGION SUBTOTAL AS 'Total for ' HEADING " " "Sales Report" " " ON TABLE SET ACCESSPDF 508 ON TABLE SET PAGE-NUM OFF ON TABLE COLUMN-TOTAL AS 'Grand Total' ON TABLE SUBHEAD "Regional Totals by Category" ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * TYPE=REPORT, FONT='ARIAL',$ TYPE=TITLE, COLUMN=N1, FONT='ARIAL', STYLE=BOLD,$ TYPE=TITLE, COLUMN=N2, FONT='ARIAL', STYLE=BOLD,$ TYPE=TITLE, COLUMN=N3, FONT='ARIAL', STYLE=BOLD,$ TYPE=HEADING, SIZE=14, STYLE=BOLD,$ TYPE=TABHEADING, SIZE=16, STYLE=BOLD,$ TYPE=SUBTOTAL, BY=1, STYLE=BOLD,$ TYPE=GRANDTOTAL, FONT='ARIAL', STYLE=BOLD,$ ENDSTYLE END
WebFOCUS generates the following tags when SET ACCESSPDF is set to 508.
Page Heading
Heading tags <H1> and <H2> and are automatically generated by WebFOCUS.
Column Titles
Row tags <TR> and header cell tags <TH> are generated by WebFOCUS. The column title is aligned with the appropriate data columns.
Data Cells
Row tags <TR> and header cell tags <TH> are generated by WebFOCUS.
The output is:
How to: |
The USEASTITLES StyleSheet attribute for PDF reports enables you to place and align custom column titles (AS='text') in the heading, rather than use the default column titles. The USEASTITLES attribute associates column titles in the heading with the appropriate data column.
TYPE=HEADING, USEASTITLES=ON, HEADALIGN=BODY,$
USEASTITLES=ON can only be set for the entire HEADING. HEADALIGN=BODY must also be set for the HEADING.
To use this attribute in App Studio:
The USEASTITLES attribute that enables the alignment of the heading elements is in bold. Note that the HEADALIGN=BODY attribute is also in bold.
TABLE FILE GGSALES SUM DOLLARS/D12M AS '' BY REGION AS '' BY CATEGORY AS '' ON REGION SUBTOTAL AS 'Total for ' HEADING " " "Sales Report" " <+0> <+0> " "Region<+0>Category<+0>Dollar Sales" ON TABLE SET ACCESSPDF 508 ON TABLE SET PAGE-NUM OFF ON TABLE COLUMN-TOTAL AS 'Grand Total' ON TABLE SUBHEAD "Regional Totals by Category <+1" ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * $ TYPE=REPORT, FONT='ARIAL',$ TYPE=TITLE, COLUMN=N1, FONT='ARIAL', STYLE=BOLD,$ TYPE=TITLE, COLUMN=N2, FONT='ARIAL', STYLE=BOLD,$ TYPE=TITLE, COLUMN=N3, FONT='ARIAL', STYLE=BOLD,$ TYPE=HEADING, SIZE=14, STYLE=BOLD, HEADALIGN=BODY, USEASTITLES=ON,$ TYPE=HEADING, LINE=2, OBJECT=TEXT, ITEM=1, COLSPAN=3, JUSTIFY=LEFT,$ TYPE=HEADING, LINE=3, OBJECT=TEXT, ITEM=1, COLSPAN=1, JUSTIFY=LEFT,$ TYPE=HEADING, LINE=3, OBJECT=TEXT, ITEM=2, SIZE=10, COLSPAN=1, JUSTIFY=RIGHT,$ TYPE=HEADING, LINE=3, OBJECT=TEXT, ITEM=3, SIZE=10, COLSPAN=1, JUSTIFY=RIGHT,$ TYPE=HEADING, LINE=4, OBJECT=TEXT, ITEM=1, SIZE=11, COLSPAN=1, JUSTIFY=LEFT,$ TYPE=HEADING, LINE=4, OBJECT=TEXT, ITEM=2, SIZE=11, COLSPAN=1, JUSTIFY=LEFT,$ TYPE=HEADING, LINE=4, OBJECT=TEXT, ITEM=3, SIZE=11, COLSPAN=1, JUSTIFY=RIGHT,$ TYPE=TABHEADING, SIZE=16, STYLE=BOLD,$ TYPE=SUBTOTAL, BY=1, STYLE=BOLD,$ TYPE=GRANDTOTAL, FONT='ARIAL', STYLE=BOLD,$ ENDSTYLE END
WebFOCUS generates the following tags when the USEASTITLES attribute is used.
Page Heading and Column Titles
Row tags <TR> and header cell tags <TH> are generated by WebFOCUS. Along with the Page Heading, the column titles are also tagged as header cells <TH>.
The output is:
Bookmarks are links in the navigation pane that enable you to go directly to a destination in the document. Using bookmarks enables you to jump from the tagged items in the navigation pane directly to the page where the item is located. The benefit of using bookmarks in conjunction with a screen reader is that you will be able to navigate a defined hierarchy without having to listen to the reading of the entire document. For more information about navigating PDF Bookmarks, see the Adobe documentation on the Adobe Web site, www.adobe.com.
Note:
The BOOKMARK attribute that enables the alignment is in bold. The TOC-LEVEL=1 and BYTOC=2 attributes for both reports are also in bold. These attributes are explained below:
Defines n as the Table of Contents level for the report layout object. This option defines the hierarchical order of objects within the Table of Contents.
0 = the object is not shown in the Table of Contents.
1 = the object is shown as a first-level item in the Table of Contents.
2 = the object is shown as a second-level item in the Table of Contents, and so on.
Specifies the number of BY fields to be included within the current component entry (m).
The following request adds bookmarks and specifies the main document heading for the compound report. The report0 component uses the DisplayOn=DOC-HEADING attribute to indicate that the ON TABLE SUBHEAD string from the report0 component should be tagged as the main document heading in the PDF output.
SET ACCESSPDF = 508 COMPOUND LAYOUT PCHOLD FORMAT PDF OBJECT=BOOKMARKS,$ SECTION=S1, LAYOUT=ON, MERGE=OFF, ORIENTATION=PORTRAIT,$ PAGELAYOUT=1,$ COMPONENT=report0, position=(1 0.5), Dimension=(* *), DisplayOn=DOC-HEADING, $ COMPONENT=report1, TEXT='This is the Title for Report 1', TOC-LEVEL=1, BYTOC=2, POSITION=(1 1), DIMENSION=(* *),$ COMPONENT=report2, TEXT='Sales By Region', TOC-LEVEL=1, BYTOC=2, POSITION=(+0.00 +0.519), DIMENSION=(* *), RELATIVE-TO='report1', REQUIRED-SPACE=(*3.5), RELATIVE-POINT=BOTTOM-LEFT, POSITION-POINT=TOP-LEFT,$ END
SET COMPONENT=report0 TABLE FILE GGSALES BY CATEGORY NOPRINT ON TABLE SUBHEAD " " "DOLLAR SALES REPORT" " " " " ON TABLE SET PAGE-NUM OFF ON TABLE HOLD FORMAT PDF ON TABLE SET STYLE * TYPE=TABHEADING , SIZE=18, FONT=ARIAL, STYLE=BOLD, JUSTIFY=CENTER,$ ENDSTYLE END SET COMPONENT=report1 TABLE FILE GGSALES SUM DOLLARS/F8M BY CATEGORY BY PRODUCT BY REGION BY ST ON CATEGORY PAGE-BREAK WHERE PRODUCT NE 'Capuccino' ON CATEGORY SUBTOTAL AS 'Subtotal for: ' HEADING "Sales by Category" " " ON TABLE HOLD FORMAT PDF ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE SET STYLE * TYPE=REPORT, SIZE=10, FONT=ARIAL,$ TYPE=HEADING, SIZE=14, FONT=ARIAL, STYLE=BOLD, JUSTIFY=CENTER,$ TYPE=SUBTOTAL, SIZE=10, STYLE=BOLD,$ ENDSTYLE END
SET COMPONENT=report2 TABLE FILE GGSALES SUM DOLLARS/F8M BY REGION BY ST BY CATEGORY BY PRODUCT ON REGION PAGE-BREAK WHERE PRODUCT NE 'Capuccino' ON REGION SUBTOTAL AS 'Subtotal for: ' HEADING "Sales by Region" " " ON TABLE HOLD FORMAT PDF ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE SET STYLE * TYPE=REPORT, SIZE=10, FONT=ARIAL,$ TYPE=HEADING, SIZE=14, FONT=ARIAL, STYLE=BOLD, JUSTIFY=CENTER,$ TYPE=SUBTOTAL, SIZE=10, STYLE=BOLD,$ ENDSTYLE END COMPOUND END
The report output, with bookmarks, is shown below.
Notice that the hierarchy tree in the Bookmarks pane has two levels for each report and is determined with the BYTOC attribute. The title for each report in the Bookmarks tree is determined with the TEXT attribute, as shown in the following image.
The first three pages of the PDF output, with the Tags panel, are shown in the following images. Note that only the first page of output contains the <H1> heading, DOLLAR SALES REPORT. The other headings are tagged as <H2>.
Page 1
Page 2
Page 3
How to: |
The ALT attribute in a WebFOCUS StyleSheet adds descriptive text to an embedded image in a PDF report. The ALT attribute in the StyleSheet generates a PDF ALT attribute on the <IMG> tag.
The ALT tag is displayed in the PDF when you hover the mouse over the image.
ALT='description'
where:
Is a brief description of the image, enclosed in single quotation marks (‘). The length can be a maximum of 256 characters.
For details on the StyleSheet syntax for adding an image, see the Creating Reports With WebFOCUS Language manual.
This request adds the Information Builders logo to a report heading. It uses the WebFOCUS StyleSheet ALT attribute to add descriptive text (Information Builders logo) that identifies the image.
TABLE FILE GGSALES SUM DOLLARS/D12N BY REGION BY CATEGORY ON REGION SUBTOTAL AS 'Total sales: ' ON REGION PAGE-BREAK HEADING "Sales Report" " " " " ON TABLE SET ACCESSPDF 508 ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SUBHEAD "Regional Totals by Category" ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9,$ TYPE=TITLE, STYLE=BOLD,$ TYPE=HEADING, SIZE=12, STYLE=BOLD, JUSTIFY=CENTER,$ TYPE=TABHEADING, SIZE=14, STYLE=BOLD, JUSTIFY=CENTER,$ TYPE=SUBTOTAL, BACKCOLOR=RGB(210 210 210), STYLE=BOLD,$ TYPE=REPORT, IMAGE=smplogo1.gif, ALT='Information Builders logo', POSITION=(1.19 .9), SIZE=(.8 .2),$ ENDSTYLE END
The report is:
When the request is run, hovering the mouse over the image displays the descriptive text. This text is read by accessibility tools, such as JAWS.
How to: |
When ACCESSPDF is enabled, the developer can provide a description of the Drill Down using the ALT attribute in a WebFOCUS StyleSheet. In the PDF report, JAWS will read the value of the Drill Down component along with the ALT text.
Including a description of the detail component of a Drill Down report supports accessibility.
ALT='description'
where:
Is the description of the Drill Down information in a report, enclosed in single quotation marks (‘). The length can be a maximum of 256 characters.
For details on the StyleSheet syntax for Drill Down reports, see the Creating Reports With WebFOCUS Language manual.
TABLE FILE GGSALES SUM DOLLARS/D12N BY REGION BY CATEGORY ON REGION SUBTOTAL AS 'Total sales: ' HEADING " " ON TABLE SET ACCESSPDF 508 ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE SUBHEAD "Sales Report" ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * UNITS=IN, SQUEEZE=ON, ORIENTATION=PORTRAIT, SUMMARY='508 Sales report example', TITLETEXT='508 Sales report example', $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9,$ TYPE=DATA, COLUMN=N2, ALT='Drill Down to detail report.', \ FOCEXEC=508drill01detail( REGION=N1 CATEGORY=N2 ),$ TYPE=TITLE, STYLE=BOLD,$ TYPE=TABHEADING, SIZE=12, STYLE=BOLD, JUSTIFY=CENTER,$ TYPE=HEADING, SIZE=12, STYLE=BOLD, JUSTIFY=CENTER,$ TYPE=SUBTOTAL, BACKCOLOR=RGB(210 210 210), STYLE=BOLD,$ ENDSTYLE END
Note the ALT attribute and associated text in BOLD.
The report is:
When you hover the mouse over Coffee for the Midwest region, the URL information for the Drill Down appears in the box. Screen readers, such as JAWS, will not read hover text. With ACCESSPDF enabled, the ALT text or 'Drill Down to detail report' is appended to the value for the Drill Down or 'Coffee' in this example. When you navigate to Coffee, the screen reader will respond with Coffee Drill Down to detail report.
Note:
-SET &FOCEXURL='http://host:port/ibi_apps/WFServlet?IBIF_webapp= /ibi_apps' | '&'; -SET &FOCEXURL=&FOCEXURL | 'IBIMR_drill=IBFS,RUNFEX,IBIF_ex,true' | '&'; -SET &FOCEXURL=&FOCEXURL | 'IBIC_server=EDASERVE' | '&'; -SET &FOCEXURL=&FOCEXURL | 'IBIAPP_app=ibisamp' | '&'; SET FOCEXURL='&FOCEXURL'
Reports using the following elements are not accessible:
You can display a report as a PostScript document. PostScript (format PS) is a print-oriented page description language. As a display format, it may be helpful if you wish to see the report output on your monitor before printing it using PostScript.
To display a PostScript report, a computer must have a third-party PostScript application installed, such as GSview (a graphical interface for Ghostscript).
If you are sending a PS report to a printer from FOCUS, you can select the size of the paper on which to print the output. The PostScript code that is generated works on PS printers that support Language Level 2 or above. It is ignored, without harmful effects, on Level 1 printers. This capability is only supported for the PostScript format.
Other print-oriented display formats. You can also display a report as a PDF document. For more information, see Using PDF Display Format.
In this section: |
Reference: |
You can add and configure PostScript Type 1 fonts to significantly expand your options for displaying and printing PS and PDF reports, beyond those provided by the basic set of fonts distributed with Adobe Reader. Thousands of PostScript fonts are available to make your reports more stylish and useful, including some that support symbols and bar codes.
The font map files for Type 1 fonts are stored as XML files (fontmap.xml and fontuser.xml). All font mappings in these files are used for both PDF and PostScript report output.
The font definitions for DHTML also cover PowerPoint (PPT and PPTX). For XLSX, you can define a new default font in the fontuser.xml file. This allows ease in customizing the look and feel of XLSX workbooks. FOCUS uses Arial as the default font. However, you can change the default font to match the Microsoft Office standard font, Calibri, or your corporate standard.
To use the Symbol font, specify font=symbol in your FOCUS StyleSheet:
FOCUS generates a PDF or PS document from scratch. In order to do that, it must physically embed all the objects it displays or prints, including images and fonts, in the document itself.
When you execute a report and specify one of these formats as your display format, FOCUS retrieves the data and begins to format the report. Fonts and images specified in the StyleSheet must be available to FOCUS to create the output file. It reads the font information from the font files and embeds that information into the document. The font itself is stored in a data set allocated in your FOCUS JCL or CLIST.
To ensure that FOCUS can locate the required information, you must define and map it in the following files:
Note: A Printer Font Metrics (PFM) file is also available. This file is used by applications such as Adobe Reader for laying out text, however it is not supported by FOCUS. You must use the AFM file.
TYPE=REPORT, FONT=HELVETICA, STYLE=ITALIC, $
There are two files FOCUS uses for mapping fonts, both in an XML-based format:
The user font map should be in a data set concatenated in front of the distributed ERRORS libraries so it is searched before the default font map. Then font definitions in the user map will override definitions of the same font in the default map.
You can also use a variety of utilities to convert Windows True Type fonts (such as Arial and Tahoma) into Type 1 fonts. Verify that you are licensed for this type of font use. Then, after you convert them, you can define and map these fonts for use by FOCUS.
One such utility is TTF2PT1.
For information about the Windows version, go to:
How to: |
Reference: |
This section describes how to add PostScript type 1 fonts to the fontuser.xml file.
Locate the necessary font files (AFM and PFB or PFA). These files should be available in the location where the fonts were originally installed. You will be copying these files to a location from which they can be accessed by FOCUS.
Tip:
After you have located the font files you wish to add, you can set up FOCUS to use one or more Type 1 fonts.
drive:\ibi\srv82\foc\etc
where:
Is your FOCUS configuration directory (it may have a different name depending on installation options, but should always be a directory directly under drive:\ibi\srv82). Note that home is the other directory directly under drive:\ibi\srv82.
Under Unix, the location is /ibi/srv82/foc/etc, assuming that FOCUS was installed in /ibi/srv82.
Keeping user font files in this directory allows user font files to remain separate from the default font files (under \ibi\srv82\home) so they can be easily preserved if FOCUS is updated to a new release.
After you copy these files, you can rename them to any descriptive name.
After you have located the font files you wish to add, you can configure FOCUS to use one or more Type 1 fonts.
Note: If the Windows font file names contain underscore characters or are longer than eight characters, you must rename them, since these are not valid for z/OS member names.
This PDS should be created with the following DCB attributes:
RECFM: VB LRECL: 1028 BLKSIZE: 27998
The member name in this PDS should match the fontfile name in the font map file.
If you copy the PFB font file into the PDS using FTP, you must use BINARY mode. The member name of the PFB file in this PDS will match the fontfile value in the font map file.
RECFM: VB LRECL: 2044 BLKSIZE: 27998
The member name in this PDS should match the fontfile value in the font map file. Note that you can use PFB and PFA files simultaneously. The fonttype attribute in the font map file (PFB or PFA) tells FOCUS which PDS to search for the specified member name.
The Type 1 PostScript fonts used with the PostScript and PDF output formats use separate font files for each variant of the font: normal, bold, italic, and bold-italic. This grouping of related fonts is called a font family.
The XML font map syntax uses two XML tags, <family> and <font>, to represent this structure. The example uses the family name Garamond. For example:
<family name="garamond"> <font style="normal" metricsfile="gdrg" fontfile="gdrg" fonttype="PFB" /> <font style="bold" metricsfile="gdb" fontfile="gdb" fonttype="PFB" /> <font style="italic" metricsfile="gdi" fontfile="gdi" fonttype="PFB" /> <font style="bold+italic" metricsfile="gdbi" fontfile="gdbi" fonttype="PFB" /> </family>
The following example uses the family name otf. For example:
<family name="otf"> <font style="normal" metricsfile="otfn" fontfile="otfn" fonttype="OTF" /> <font style="bold" metricsfile="otfb" fontfile="otfb" fonttype="OTF" /> <font style="italic" metricsfile="otfi" fontfile="otfi" fonttype="OTF" /> <font style="bold+italic" metricsfile="otfbi" fontfile="otfbi" fonttype="OTF" /> </family>
The basics of the XML syntax are:
<!-- This is a comment -->
A more complete description of XML syntax can be found here:
http://en.wikipedia.org/wiki/Xml
The family element
The family element specifies the name of a font family. This family name, specified in the name attribute of the family element, is the name by which the font will be referenced in a StyleSheet. It corresponds to the value of the FONT attribute in the StyleSheet. The end-tag </family> closes the family element, and any number of additional family elements may follow.
Font family names should be composed of letters (A-Z, a-z), digits, and limited special characters, such as a minus sign (-), underscore (_), and blank. Font family names should have a maximum length of 40 characters. Since the font name is only a reference to a mapping in the font map, it does not need to be related to the actual name of the font (which FOCUS obtains from the mapped AFM file) or the file name of the font.
Font elements
Nested within each family element are one or more font elements that specify the font files for each font in the family. For example, there may be one font element for the font Garamond Regular (normal), one for Garamond Italic (italic). Since a font element has no child elements, it is closed with "/>".
The actual name of the font as used in the PDF or PostScript document is taken from the font metric file.
Fonts defined in the user font file (fontuser.xml) can override default font definitions in fontmap.xml. Thus, you should be careful to choose family names that do not conflict with existing definitions, unless you actually wish to override these definitions (which should generally not be done).
Each font element contains the following attributes:
<font style="bold+italic" metricsfile="gdbi" fontfile="gdbi" fonttype="PFB" />
could be referenced in the StyleSheet like this:
TYPE=REPORT, FONT=GARAMOND, STYLE=BOLD+ITALIC, $
Although most fonts have a font file for each of the four styles, some specialized fonts such as bar code fonts might only have a single style (usually "normal"). Only the styles that exist for a particular font need to be specified in the font map file.
The actual names of the fonts may vary. Some fonts may be called "oblique" rather than "italic", or "heavy" rather than "bold". However, the font map and StyleSheet always use the keywords "normal", "bold", "italic" and "bold+italic".
File names should be composed of letters and numbers, and should not contain blanks.
Additional items of XML syntax include the XML header on the first line of the file and the <fontmap> and <when> elements that enclose all of the family elements. The <when> tag allows the same font mappings to be used for both PDF and PostScript reports across output formats. These can include PDF, PS, and DHTML. PPT and PPTX formats will use fonts specified for DHTML. If no <when> is specified, the font will be available for all formats.
The following is a complete example of a user font map:
<?xml version="1.0" encoding="UTF-8" ?> <!-- Example of a user font map file with two font families. --> <fontmap version="1"> <when format="PDF PS"> <family name="garamond"> <font style="normal" metricsfile="gdrg" fontfile="gdrg" fonttype="PFB" /> <font style="bold" metricsfile="gdb" fontfile="gdb" fonttype="PFB" /> <font style="italic" metricsfile="gdi" fontfile="gdi" fonttype="PFB" /> <font style="bold+italic" metricsfile="gdbi" fontfile="gdbi" fonttype="PFB" /> </family> <!-- This font only has a "normal" style, others omitted. --> <family name="ocra"> <font style="normal" metricsfile="ocra" fontfile="ocra" fonttype="PFB" /> </family> </when> </fontmap>
Once the font map files have been set up, the newly mapped fonts can be used in a FOCUS StyleSheet. For example, to use the Garamond fonts:
ON TABLE SET STYLE * type=report, font=garamond, size=12, $ type=title, font=garamond, style=bold, color=blue, $ ENDSTYLE
Since the style attribute has been omitted for the report font in the StyleSheet, it defaults to normal. Attributes such as size and color can also be applied.
There is a byte order mark (BOM) at the beginning of the user font map file (fontuser.xml), which must be preserved for this file to be read correctly.
If you are using a Unicode-aware editor, such as Notepad on Windows, to edit the file, the BOM will not be visible, but you can preserve it by making sure that you select an encoding of UTF-8 in the Save-As dialog. In most other editors, such as the ISPF editor under z/OS, the BOM will display as three or four strange-looking characters at the beginning of the file. As long as you do not delete or modify these characters, the BOM will be preserved.
Since the user font map is searched before the FOCUS default font map, font definitions in the user font map file will override mappings of the same font in the default font map file. Since you usually would not want to override existing font mappings, you can check which font names are already used by FOCUS by examining the default font map file.
On z/OS, it is in the FONTMAP member of a partitioned data set allocated to DDNAME ERRORS. Unlike the user font map file, this file has separate sections containing definitions for PS, PDF, and DHTML formats.
Note: The DHTML mappings are used for the DHTML and PowerPoint output formats, which do not support user-added fonts.
Since the font mappings in the default font map file are for fonts that are already assumed to exist on the user machines (for example, built-in Adobe Reader fonts, standard PostScript printer fonts, or standard Windows fonts), they do not reference font files, only font metrics files. Fonts provided by the user should reference both font files and metrics files.
AFM files for the default fonts are also members of a data set allocated to DDNAME ERRORS.
An individual default font can be set for each output type and/or language setting within an output type. This setting should be defined in the fontuser.xml file rather than the fontmap.xml file. Fontmap.xml may be updated by a future release installation, so customizations may be lost. Additionally, the settings in fontuser.xml override settings in fontmap.xml.
On z/OS, the fontmap and fontuser xml files are members FONTMAP and FONTUSER in a data set allocated to DDNAME ERRORS.
To designate the default font use the following steps:
default="yes"
For example, the following code defines the default fonts to be Helvetica bold for PDF, Calibri for XLSX, and Arial Italic for DHTML:
<fontmap version="1"> <when format="PDF PS"> <family name="Helvetica" htmlfont="Arial"> <font style="normal" metricsfile="pdhelv" /> <font style="bold" metricsfile="pdhelvb" default="yes" /> <font style="italic" metricsfile="pdhelvi" /> <font style="bold+italic" metricsfile="pdhelvbi" /> </family> </when> <when format="XLSX"> <family name="Calibri" htmlfont="Calibri"> <font style="normal" metricsfile="ttcali" default="yes" /> <font style="bold" metricsfile="ttcalib" /> <font style="italic" metricsfile="ttcalii" /> <font style="bold+italic" metricsfile="ttcalibi" /> </family> </when> <when format="DHTML"> <family name="Arial"> <font style="normal" metricsfile="ttarial" /> <font style="bold" metricsfile="ttarialb" /> <font style="italic" metricsfile="ttariali" default="yes" /> <font style="bold+italic" metricsfile="ttariabi" /> </family> </when> </fontmap>
If multiple fonts in a font map family, such as PDF, have the default="yes" attribute, the last font with that attribute becomes the default font. Fonts in fontuser.xml are processed after those in fontmap.xml, so a default font set in fontuser.xml can override the one set in fontmap.xml.
A default font set in the PDF section of the font map does not affect a default in the DHTML section, and a default for one specific language does not override the default for other languages.
How to: |
Compound reports combine multiple reports into a single PDF or PS file. The first PDF or PS report defines the format for the concatenated report, enabling you to intersperse intermediate reports of other formats into one encompassing report. Using compound reports, you can gather data from different data sources and combine reports into one governing report that runs each request and concatenates the output into a single PDF or PS file. You can also embed image files in a compound report.
This is supported with styled formats, such as PDF, PS, EXL2K, or XLSX.
For a compound report that may contain different report types, use the syntax
SET COMPOUND= {OPEN|CLOSE} [NOBREAK]
or
ON TABLE SET COMPOUND {OPEN|CLOSE}
Note that when you are using this syntax, you must also include the following code to identify the display format of each of the reports to be concatenated:
ON TABLE {HOLD|SAVE} [AS name] FORMAT formatname
If all of the reports in the compound set are of the same type, either PDF or PS, you can use the following, more compact, syntax
ON TABLE {HOLD|SAVE} [AS name] FORMAT {PDF|PS} {OPEN|CLOSE} [NOBREAK]
where:
You can use NOBREAK selectively in a request to control which reports are displayed on the same page.
Note:
The following illustrates how to combine three separate PDF reports into one by creating a compound report. Notice that:
Note that in this example, all reports are set to PDF format. However, when you create a compound report, only the first report must be in either PDF or PS format. Subsequent reports can be in any styled format.
Report 1:
SET PAGE-NUM=OFF TABLE FILE GGSALES HEADING "Sales Report" " " SUM DOLLARS BY PRODUCT ON TABLE SET STYLE * TYPE=HEADING, SIZE=14,STYLE=BOLD, $ TYPE=REPORT, FONT=ARIAL,SIZE=10,$ ENDSTYLE ON TABLE HOLD FORMAT PDF OPEN NOBREAK END
Report 2:
TABLE FILE GGSALES HEADING "Budget Report" " " SUM BUDDOLLARS BY PRODUCT ON TABLE SET STYLE * TYPE=HEADING, SIZE=14, STYLE=BOLD, $ TYPE=REPORT, FONT=ARIAL,SIZE=10,$ ENDSTYLE ON TABLE HOLD FORMAT PDF NOBREAK END
Report 3:
TABLE FILE GGSALES HEADING "Quota Report" " " SUM BUDDOLLARS DOLLARS AND COMPUTE QUOTAPCT/D7.2 = DOLLARS/BUDDOLLARS * 100; AS '% of,Quota' BY PRODUCT ON TABLE SET STYLE * TYPE=HEADING, SIZE=14,STYLE=BOLD,$ TYPE=REPORT, FONT=ARIAL,SIZE=10,$ ENDSTYLE ON TABLE HOLD FORMAT PDF CLOSE END
The output displays as a PDF report. Because the syntax for reports 1 and 2 contain the NOBREAK command, the three reports appear on a single page. (Without NOBREAK, each report displays on a separate page.)
How to: |
Using StyleSheet attributes, you can display An (character) and AnV (varchar) fields that contain line breaks on multiple lines in a PDF or PostScript report. Line breaks can be based on line feeds, carriage returns, or a combination of both. If you do not add these StyleSheet attributes, all line feed and carriage return formatting within these fields will be ignored.
TYPE=REPORT,LINEBREAK='type',$
where:
Is the required component for the LINEBREAK attribute.
Specifies that line breaks will be inserted in a report based on the following:
LF inserts a line break after each line-feed character found in all An and AnV fields.
CR inserts a line break after each carriage-return character found in all An and AnV fields.
LFCR inserts a line break after each combination of a line-feed character followed by a carriage-return character found in all An and AnV fields.
CRLF inserts a line break after each combination of a carriage-return character followed by a line-feed character found in all An and AnV fields.
Note: The report output must be formatted as PDF or PostScript.
The following request defines an alphanumeric named ANLB field with a semi-colon in the middle. The CTRAN function then replaces the semi-colon with a carriage return character and stores this string in a field named ANLBC. On the report output, this field displays on two lines:
DEFINE FILE EMPLOYEE ANLB/A40 ='THIS IS AN An FIELD;WITH A LINE BREAK.'; ANLBC/A40 = CTRAN(40, ANLB, 094, 013 , ANLBC); END TABLE FILE EMPLOYEE PRINT LAST_NAME ANLBC WHERE LAST_NAME EQ 'BLACKWOOD' ON TABLE HOLD FORMAT PDF ON TABLE SET STYLE * TYPE=REPORT,LINEBREAK='CR',$ ENDSTYLE END
The output is:
LAST_NAME |
ANLBC |
BLACKWOOD |
THIS IS AN An FIELD WITH A LINE BREAK. |
The following request defines an alphanumeric named ANLB field with a semi-colon in the middle. The CTRAN function then replaces the semi-colon with a carriage return character and stores this string in a field named ANLBC. In the subfoot, this field displays on two lines:
DEFINE FILE EMPLOYEE ANLB/A40 ='THIS IS AN An FIELD;WITH A LINE BREAK.'; ANLBC/A40 = CTRAN(40, ANLB, 094, 013 , ANLBC); END TABLE FILE EMPLOYEE PRINT FIRST_NAME BY LAST_NAME WHERE LAST_NAME EQ 'BLACKWOOD' ON LAST_NAME SUBFOOT " " " <ANLBC " ON TABLE HOLD FORMAT PDF ON TABLE SET STYLE * TYPE=REPORT,LINEBREAK='CR',$ ENDSTYLE END
The output is:
LAST_NAME |
FIRST_NAME |
BLACKWOOD |
ROSEMARIE |
THIS IS AN An FIELD WITH A LINE BREAK. |
How to: |
Reference: |
PDF files created with HOLD FORMAT PDF present a challenge if you work in a z/OS environment and use UNIX-based systems as the server for Adobe or as an intermediate transfer point.
The end of each PDF file has a table containing the byte offset, including line termination characters, of each PDF object in the file. The offsets indicate that each line is terminated by two characters, a carriage return and a line feed, which is the standard Windows text file format. However, records in a UNIX text file are terminated by one character, a line feed only. When using default settings, the offsets in a PDF file will be incorrect, causing an error when Acrobat attempts to open the file. If the file is then transferred in BINARY mode to Windows, it cannot be opened in Acrobat for Windows, as the carriage-return character was not inserted.
One solution has been to transfer the file to the UNIX system in text mode and then transfer in text mode to the Windows system, as the carriage return is added by the transfer facility when transferring to Windows.
If that is not possible or desirable, you can use the SET PDFLINETERM=SPACE command to facilitate binary transfer to Windows from an ASCII-based UNIX system. This command causes an extra space character to be appended to each record of the PDF output file. This extra space acts as a placeholder for the expected carriage return character and makes the object offsets in the file correct when it is transferred from z/OS to a UNIX system. This enables a UNIX server to open a PDF file in that environment.
Note: A text mode transfer is always required when transferring a text file from a mainframe to any other environment (Windows, ASCII Unix, or EBCDIC Unix).
In a profile, a FOCEXEC, or from the command line, issue the following command:
SET PDFLINETERM={STANDARD|SPACE}
In a TABLE request, issue the following command
ON TABLE SET PDFLINETERM {STANDARD|SPACE}
where:
Creates a PDF file without any extra characters. This file will be a valid PDF file if transferred in text mode to a Windows machine, but not to a UNIX machine. If subsequently transferred from a UNIX machine to a Windows machine in text mode, it will be a valid PDF file on the Windows machine.
Creates a PDF file with an extra space character appended to each record. This file will be a valid PDF file if transferred in text mode to a UNIX machine, but not to a Windows machine. If subsequently transferred from an ASCII UNIX machine to a Windows machine in binary mode, it will be a valid PDF file on the Windows machine.
The following chart will assist you in determining the correct setting to use, based on your environment:
Transferring from z/OS to: |
SET PDFLINETERM= |
---|---|
EBCDIC UNIX (text transfer) |
SPACE |
ASCII UNIX (text transfer) |
SPACE |
ASCII UNIX (text); then to Windows (binary) |
SPACE |
UNIX (text); then to Windows (text) |
STANDARD |
Directly to Windows (text) |
STANDARD |
|
Information Builders |