org.apache.fop.fonts.apps

## Class TTFReader

- java.lang.Object
- - org.apache.fop.fonts.apps.AbstractFontReader
  - - org.apache.fop.fonts.apps.TTFReader

-     public class TTFReader
      extends AbstractFontReader

  A tool which reads TTF files and generates XML font metrics file for use in FOP.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `METRICS_VERSION` Current version number for the metrics file
    `static String` | `METRICS_VERSION_ATTR` Used to detect incompatible versions of the generated XML files

    - ### Fields inherited from class org.apache.fop.fonts.apps.AbstractFontReader

      `log`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TTFReader()` Main constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `checkMetricsVersion(Attributes attr)` Bugzilla 40739, check that attr has a metrics-version attribute compatible with ours.
    `Document` | `constructFontXML(TTFFile ttf, String fontName, String className, String resource, String file, boolean isCid, String ttcName)` Generates the font metrics file from the TTF/TTC file.
    `TTFFile` | `loadTTF(String fileName, String fontName, boolean useKerning, boolean useAdvanced)` Read a TTF file and returns it as an object.
    `static void` | `main(String[] args)` The main method for the TTFReader tool.

    - ### Methods inherited from class org.apache.fop.fonts.apps.AbstractFontReader

      `determineLogLevel, parseArguments, setLogLevel, writeFontXML, writeFontXML`

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

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

- - ### Field Detail

    - #### METRICS_VERSION_ATTR

          public static final String METRICS_VERSION_ATTR

      Used to detect incompatible versions of the generated XML files
      See Also:
        Constant Field Values

    - #### METRICS_VERSION

          public static final int METRICS_VERSION

      Current version number for the metrics file
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### TTFReader

          public TTFReader()

      Main constructor.

  - ### Method Detail

    - #### main

          public static void main(String[] args)

      The main method for the TTFReader tool.
      Parameters:
        `args` - Command-line arguments: [options] fontfile.ttf xmlfile.xml where options can be: -fn fontname default is to use the fontname in the .ttf file, but you can override that name to make sure that the embedded font is used instead of installed fonts when viewing documents with Acrobat Reader. -cn classname default is to use the fontname -ef path to the truetype fontfile will add the possibility to embed the font. When running fop, fop will look for this file to embed it -er path to truetype fontfile relative to org/apache/fop/render/pdf/fonts you can also include the fontfile in the fop.jar file when building fop. You can use both -ef and -er. The file specified in -ef will be searched first, then the -er file. -nocs if complex script features are disabled

    - #### loadTTF

          public TTFFile loadTTF(String fileName,
                                 String fontName,
                                 boolean useKerning,
                                 boolean useAdvanced)
                          throws IOException

      Read a TTF file and returns it as an object.
      Parameters:
        `fileName` - The filename of the TTF file.
        `fontName` - The name of the font
        `useKerning` - true if should load kerning data
        `useAdvanced` - true if should load advanced typographic table data
      Returns:
        The TTF as an object, null if the font is incompatible.
      Throws:
        `IOException` - In case of an I/O problem

    - #### constructFontXML

          public Document constructFontXML(TTFFile ttf,
                                           String fontName,
                                           String className,
                                           String resource,
                                           String file,
                                           boolean isCid,
                                           String ttcName)

      Generates the font metrics file from the TTF/TTC file.
      Parameters:
        `ttf` - The PFM file to generate the font metrics from.
        `fontName` - Name of the font
        `className` - Class name for the font
        `resource` - path to the font as embedded resource
        `file` - path to the font as file
        `isCid` - True if the font is CID encoded
        `ttcName` - Name of the TrueType Collection
      Returns:
        The DOM document representing the font metrics file.

    - #### checkMetricsVersion

          public static void checkMetricsVersion(Attributes attr)
                                          throws SAXException

      Bugzilla 40739, check that attr has a metrics-version attribute compatible with ours.
      Parameters:
        `attr` - attributes read from the root element of a metrics XML file
      Throws:
        `SAXException` - if incompatible

Copyright © 2025 Apache Software Foundation. All rights reserved.