PSFontUtils (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.render.ps

## Class PSFontUtils

- java.lang.Object
- - org.apache.xmlgraphics.ps.PSFontUtils
  - - org.apache.fop.render.ps.PSFontUtils

-     public class PSFontUtils
      extends org.apache.xmlgraphics.ps.PSFontUtils

  Utility code for font handling in PostScript.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static org.apache.commons.logging.Log` | `log` logging instance

    - ### Fields inherited from class org.apache.xmlgraphics.ps.PSFontUtils

      `ADOBECYRILLIC_ENCODING_RESOURCE, WINANSI_ENCODING_RESOURCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PSFontUtils()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `addFallbackFonts(FontInfo fontInfo, org.apache.xmlgraphics.java2d.GeneralGraphics2DImagePainter painter)`
    `static org.apache.xmlgraphics.ps.PSResource` | `defineDerivedFont(org.apache.xmlgraphics.ps.PSGenerator gen, String baseFontName, String fontName, String encoding)` Derives a new font based on an existing font with a given encoding.
    `static org.apache.xmlgraphics.ps.PSResource` | `defineEncoding(org.apache.xmlgraphics.ps.PSGenerator gen, SingleByteEncoding encoding)` Defines the single-byte encoding for use in PostScript files.
    `static Map` | `determineSuppliedFonts(org.apache.xmlgraphics.ps.dsc.ResourceTracker resTracker, FontInfo fontInfo, Map<String,Typeface> fonts)` Determines the set of fonts that will be supplied with the PS file and registers them with the resource tracker.
    `static Map` | `writeFontDict(org.apache.xmlgraphics.ps.PSGenerator gen, FontInfo fontInfo)` Generates the PostScript code for the font dictionary.
    `static Map` | `writeFontDict(org.apache.xmlgraphics.ps.PSGenerator gen, FontInfo fontInfo, Map<String,Typeface> fonts, PSEventProducer eventProducer)` Generates the PostScript code for the font dictionary.
    `static Map` | `writeFontDict(org.apache.xmlgraphics.ps.PSGenerator gen, FontInfo fontInfo, PSEventProducer eventProducer)` Generates the PostScript code for the font dictionary.

    - ### Methods inherited from class org.apache.xmlgraphics.ps.PSFontUtils

      `defineAdobeCyrillicEncoding, defineWinAnsiEncoding, embedType1Font, redefineFontEncoding`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### log

          protected static final org.apache.commons.logging.Log log

      logging instance

  - ### Constructor Detail

    - #### PSFontUtils

          public PSFontUtils()

  - ### Method Detail

    - #### writeFontDict

          public static Map writeFontDict(org.apache.xmlgraphics.ps.PSGenerator gen,
                                          FontInfo fontInfo)
                                   throws IOException

      Generates the PostScript code for the font dictionary. This method should only be used if no "resource optimization" is performed, i.e. when the fonts are not embedded in a second pass.
      Parameters:
        `gen` - PostScript generator to use for output
        `fontInfo` - available fonts
      Returns:
        a Map of PSResource instances representing all defined fonts (key: font key)
      Throws:
        `IOException` - in case of an I/O problem

    - #### writeFontDict

          public static Map writeFontDict(org.apache.xmlgraphics.ps.PSGenerator gen,
                                          FontInfo fontInfo,
                                          PSEventProducer eventProducer)
                                   throws IOException

      Generates the PostScript code for the font dictionary. This method should only be used if no "resource optimization" is performed, i.e. when the fonts are not embedded in a second pass.
      Parameters:
        `gen` - PostScript generator to use for output
        `fontInfo` - available fonts
        `eventProducer` - to report events
      Returns:
        a Map of PSResource instances representing all defined fonts (key: font key)
      Throws:
        `IOException` - in case of an I/O problem

    - #### writeFontDict

          public static Map writeFontDict(org.apache.xmlgraphics.ps.PSGenerator gen,
                                          FontInfo fontInfo,
                                          Map<String,Typeface> fonts,
                                          PSEventProducer eventProducer)
                                   throws IOException

      Generates the PostScript code for the font dictionary. This method assumes all used fonts and characters are known, i.e. when PostScript is generated with resource optimization turned on.
      Parameters:
        `gen` - PostScript generator to use for output
        `fontInfo` - available fonts
        `fonts` - the set of fonts to work with
        `eventProducer` - the event producer
      Returns:
        a Map of PSResource instances representing all defined fonts (key: font key)
      Throws:
        `IOException` - in case of an I/O problem

    - #### determineSuppliedFonts

          public static Map determineSuppliedFonts(org.apache.xmlgraphics.ps.dsc.ResourceTracker resTracker,
                                                   FontInfo fontInfo,
                                                   Map<String,Typeface> fonts)

      Determines the set of fonts that will be supplied with the PS file and registers them with the resource tracker. All the fonts that are being processed are returned as a Map.
      Parameters:
        `resTracker` - the resource tracker
        `fontInfo` - available fonts
        `fonts` - the set of fonts to work with
      Returns:
        a Map of PSResource instances representing all defined fonts (key: font key)

    - #### defineEncoding

          public static org.apache.xmlgraphics.ps.PSResource defineEncoding(org.apache.xmlgraphics.ps.PSGenerator gen,
                                                                            SingleByteEncoding encoding)
                                                                     throws IOException

      Defines the single-byte encoding for use in PostScript files.
      Parameters:
        `gen` - the PostScript generator
        `encoding` - the single-byte encoding
      Returns:
        the PSResource instance that represents the encoding
      Throws:
        `IOException` - In case of an I/O problem

    - #### defineDerivedFont

          public static org.apache.xmlgraphics.ps.PSResource defineDerivedFont(org.apache.xmlgraphics.ps.PSGenerator gen,
                                                                               String baseFontName,
                                                                               String fontName,
                                                                               String encoding)
                                                                        throws IOException

      Derives a new font based on an existing font with a given encoding. The encoding must have been registered before.
      Parameters:
        `gen` - the PostScript generator
        `baseFontName` - the font name of the font to derive from
        `fontName` - the font name of the new font to be define
        `encoding` - the new encoding (must be predefined in the PS file)
      Returns:
        the PSResource representing the derived font
      Throws:
        `IOException` - In case of an I/O problem

    - #### addFallbackFonts

          public static void addFallbackFonts(FontInfo fontInfo,
                                              org.apache.xmlgraphics.java2d.GeneralGraphics2DImagePainter painter)
                                       throws IOException

      Throws:
        `IOException`

Copyright © 2025 Apache Software Foundation. All rights reserved.