Class PdfBoxFontResolver.FontDescription

java.lang.Object
com.openhtmltopdf.pdfboxout.PdfBoxFontResolver.FontDescription
All Implemented Interfaces:
MinimalFontDescription
Enclosing class:
PdfBoxFontResolver

public static class PdfBoxFontResolver.FontDescription extends Object implements MinimalFontDescription
A FontDescription can exist in multiple states. Firstly the font may or may not be realized. Fonts are automatically realized upon calling getFont() Secondly, the metrics may or may not be available. If not available, you can attempt to retrieve them by realizing the font.
  • Field Details

    • _style

      private final IdentValue _style
    • _weight

      private final int _weight
    • _family

      private final String _family
    • _doc

      private final org.apache.pdfbox.pdmodel.PDDocument _doc
    • _supplier

      private FSSupplier<InputStream> _supplier
    • _fontSupplier

      private FSSupplier<org.apache.pdfbox.pdmodel.font.PDFont> _fontSupplier
    • _font

      private org.apache.pdfbox.pdmodel.font.PDFont _font
    • _isFromFontFace

      private final boolean _isFromFontFace
    • _isSubset

      private final boolean _isSubset
    • _metrics

      private PdfBoxRawPDFontMetrics _metrics
    • _metricsCache

      private final FSCacheEx<String,FSCacheValue> _metricsCache
  • Constructor Details

    • FontDescription

      public FontDescription(org.apache.pdfbox.pdmodel.font.PDFont font, IdentValue style, int weight)
      Create a font description from one of the PDF built-in fonts.
    • FontDescription

      public FontDescription(org.apache.pdfbox.pdmodel.PDDocument doc, FSSupplier<InputStream> supplier, int weight, IdentValue style, String family, boolean isFromFontFace, boolean isSubset, FSCacheEx<String,FSCacheValue> metricsCache)
      Create a font description from an input stream supplier. The input stream will only be accessed if getFont() or getFontMetrics() (and the font metrics were not available from cache) are called.
    • FontDescription

      private FontDescription(org.apache.pdfbox.pdmodel.PDDocument doc, org.apache.pdfbox.pdmodel.font.PDFont font, IdentValue style, int weight)
      Create a font description when a PDFont is definitely available to begin with. Currently only used for PDF built-in fonts.
    • FontDescription

      public FontDescription(org.apache.pdfbox.pdmodel.PDDocument doc, FSSupplier<org.apache.pdfbox.pdmodel.font.PDFont> fontSupplier, IdentValue style, int weight, String family, boolean isFromFontFace, boolean isSubset, FSCacheEx<String,FSCacheValue> metricsCache)
      Creates a font description from a PDFont supplier. The supplier will only be called upon if getFont() or getFontMetrics() (and the font metrics were not available from cache) are called.
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getFamily

      public String getFamily()
    • createFontMetricsCacheKey

      private String createFontMetricsCacheKey(String family, int weight, IdentValue style)
    • getFontMetricsFromCache

      private PdfBoxRawPDFontMetrics getFontMetricsFromCache(String family, int weight, IdentValue style)
    • putFontMetricsInCache

      private void putFontMetricsInCache(String family, int weight, IdentValue style, PdfBoxRawPDFontMetrics metrics)
    • loadMetrics

      private boolean loadMetrics()
    • realizeFont

      public boolean realizeFont()
    • isFontAvailable

      public boolean isFontAvailable()
      Returns whether the font is available yet.
      See Also:
    • getFont

      public org.apache.pdfbox.pdmodel.font.PDFont getFont()
      Downloads and parses the font if required. Should only be called when the font is definitely needed.
      Returns:
      the font or null if there was a problem.
    • getWeight

      public int getWeight()
      Specified by:
      getWeight in interface MinimalFontDescription
    • getStyle

      public IdentValue getStyle()
      Specified by:
      getStyle in interface MinimalFontDescription
    • isFromFontFace

      public boolean isFromFontFace()
    • isMetricsAvailable

      public boolean isMetricsAvailable()
      If the metrics are available yet.
      See Also:
    • getFontMetrics

      public PdfBoxRawPDFontMetrics getFontMetrics()
      Downloads and parses the font if required (metrics were not available from cache). Should only be called when the font metrics are definitely needed.
      Returns:
      the font metrics or null if there was a problem.
      See Also: