org.apache.fop.fonts.apps

## Class PFMReader

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

-     public class PFMReader
      extends AbstractFontReader

  A tool which reads PFM files from Adobe Type 1 fonts and creates XML font metrics file for use in FOP.

- - ### Field Summary

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

      `log`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Document` | `constructFontXML(PFMFile pfm, String fontName, String className, String resource, String file)` Generates the font metrics file from the PFM file.
    `PFMFile` | `loadPFM(String filename)` Read a PFM file and returns it as an object.
    `static void` | `main(String[] args)` The main method for the PFM reader tool.
    `void` | `preview(PFMFile pfm)` Displays a preview of the PFM file on the console.

    - ### 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`

- - ### Constructor Detail

    - #### PFMReader

          public PFMReader()

      Main constructor.

  - ### Method Detail

    - #### main

          public static void main(String[] args)

      The main method for the PFM reader tool.
      Parameters:
        `args` - Command-line arguments: [options] metricfile.pfm xmlfile.xml where options can be: -fn fontname default is to use the fontname in the .pfm 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 Type1 .pfb fontfile will add the possibility to embed the font. When running fop, fop will look for this file to embed it -er path to Type1 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.

    - #### loadPFM

          public PFMFile loadPFM(String filename)
                          throws IOException

      Read a PFM file and returns it as an object.
      Parameters:
        `filename` - The filename of the PFM file.
      Returns:
        The PFM as an object.
      Throws:
        `IOException` - In case of an I/O problem

    - #### preview

          public void preview(PFMFile pfm)

      Displays a preview of the PFM file on the console.
      Parameters:
        `pfm` - The PFM file to preview.

    - #### constructFontXML

          public Document constructFontXML(PFMFile pfm,
                                           String fontName,
                                           String className,
                                           String resource,
                                           String file)

      Generates the font metrics file from the PFM file.
      Parameters:
        `pfm` - 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
      Returns:
        The DOM document representing the font metrics file.

Copyright © 2025 Apache Software Foundation. All rights reserved.