Class ITextFontResolver

java.lang.Object
org.xhtmlrenderer.pdf.ITextFontResolver
All Implemented Interfaces:
FontResolver
Direct Known Subclasses:
CJKFontResolver

public class ITextFontResolver extends Object implements FontResolver
  • Field Details

  • Constructor Details

    • ITextFontResolver

      public ITextFontResolver()
  • Method Details

    • getFonts

      public Map<String,FontFamily> getFonts()
    • getDistinctFontFamilyNames

      public static Set<String> getDistinctFontFamilyNames(String path, String encoding, boolean embedded)
      Utility method which uses iText libraries to determine the family name(s) for the font at the given path. The iText APIs seem to indicate there can be more than one name, but this method will return a set of them. Use a name from this list when referencing the font in CSS for PDF output. Note that family names as reported by iText may vary from those reported by the AWT Font class, e.g. "Arial Unicode MS" for iText and "ArialUnicodeMS" for AWT.
      Parameters:
      path - local path to the font file
      encoding - same as what you would use for addFont(String, String, boolean)
      embedded - same as what you would use for addFont(String, String, boolean)
      Returns:
      set of all family names for the font file, as reported by iText libraries
    • resolveFont

      public FSFont resolveFont(SharedContext renderingContext, FontSpecification spec)
      Specified by:
      resolveFont in interface FontResolver
    • flushCache

      public void flushCache()
      Specified by:
      flushCache in interface FontResolver
    • flushFontFaceFonts

      public void flushFontFaceFonts()
    • importFontFaces

      public void importFontFaces(List<FontFaceRule> fontFaces, UserAgentCallback userAgentCallback)
    • addFontDirectory

      public void addFontDirectory(String dir, boolean embedded) throws com.lowagie.text.DocumentException, IOException
      Throws:
      com.lowagie.text.DocumentException
      IOException
    • addFont

      public void addFont(String path, boolean embedded) throws com.lowagie.text.DocumentException, IOException
      Throws:
      com.lowagie.text.DocumentException
      IOException
    • addFont

      public void addFont(String path, String encoding, boolean embedded) throws com.lowagie.text.DocumentException, IOException
      Throws:
      com.lowagie.text.DocumentException
      IOException
    • addFont

      public void addFont(String path, String encoding, boolean embedded, String pathToPFB) throws com.lowagie.text.DocumentException, IOException
      Throws:
      com.lowagie.text.DocumentException
      IOException
    • addFont

      public void addFont(String path, String fontFamilyNameOverride, String encoding, boolean embedded, String pathToPFB) throws com.lowagie.text.DocumentException, IOException
      Throws:
      com.lowagie.text.DocumentException
      IOException
    • fontSupported

      private boolean fontSupported(String uri)
    • addFontFaceFont

      private void addFontFaceFont(String fontFamilyNameOverride, IdentValue fontWeightOverride, IdentValue fontStyleOverride, String uri, String encoding, boolean embedded, byte[] afmttf, byte[] pfb) throws com.lowagie.text.DocumentException, IOException
      Throws:
      com.lowagie.text.DocumentException
      IOException
    • readFile

      private byte[] readFile(String path) throws IOException
      Throws:
      IOException
    • getFontFamily

      private FontFamily getFontFamily(String fontFamilyName)
    • resolveFont

      private FSFont resolveFont(@Nullable String[] families, float size, IdentValue weight, IdentValue style)
    • normalizeFontFamily

      String normalizeFontFamily(String fontFamily)
    • resolveFont

      private FSFont resolveFont(String fontFamily, float size, IdentValue weight, IdentValue style)
    • convertWeightToInt

      public static int convertWeightToInt(IdentValue weight)
    • loadFonts

      protected Map<String,FontFamily> loadFonts()
    • createFont

      private com.lowagie.text.pdf.BaseFont createFont(String name)
    • createFont

      private com.lowagie.text.pdf.BaseFont createFont(String name, String encoding, boolean embedded)
    • addCourier

      private void addCourier(Map<String,FontFamily> result)
    • addTimes

      private void addTimes(Map<String,FontFamily> result)
    • addHelvetica

      private void addHelvetica(Map<String,FontFamily> result)
    • addSymbol

      private void addSymbol(Map<String,FontFamily> result)
    • addZapfDingbats

      private void addZapfDingbats(Map<String,FontFamily> result)