Class FontFactoryImp

  • All Implemented Interfaces:
    FontProvider
    Direct Known Subclasses:
    XMLWorkerFontProvider

    public class FontFactoryImp
    extends java.lang.Object
    implements FontProvider
    If you are using True Type fonts, you can declare the paths of the different ttf- and ttc-files to this class first and then create fonts in your code using one of the getFont method without having to enter a path as parameter.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      boolean defaultEmbedding
      This is the default value of the embedded variable.
      java.lang.String defaultEncoding
      This is the default encoding to use.
      private java.util.Hashtable<java.lang.String,​java.util.ArrayList<java.lang.String>> fontFamilies
      This is a map of fontfamilies.
      private static Logger LOGGER  
      private java.util.Hashtable<java.lang.String,​java.lang.String> trueTypeFonts
      This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file.
      private static java.lang.String[] TTFamilyOrder  
    • Constructor Summary

      Constructors 
      Constructor Description
      FontFactoryImp()
      Creates new FontFactory
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected BaseFont getBaseFont​(java.lang.String fontname, java.lang.String encoding, boolean embedded, boolean cached)  
      Font getFont​(java.lang.String fontname)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, float size)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, float size, int style)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, float size, int style, BaseColor color)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, float size, BaseColor color)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, boolean embedded)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, boolean embedded, float size)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, boolean embedded, float size, int style)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, boolean embedded, float size, int style, BaseColor color)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, boolean embedded, float size, int style, BaseColor color, boolean cached)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, float size)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, float size, int style)
      Constructs a Font-object.
      Font getFont​(java.lang.String fontname, java.lang.String encoding, float size, int style, BaseColor color)
      Constructs a Font-object.
      java.util.Set<java.lang.String> getRegisteredFamilies()
      Gets a set of registered fontnames.
      java.util.Set<java.lang.String> getRegisteredFonts()
      Gets a set of registered fontnames.
      boolean isRegistered​(java.lang.String fontname)
      Checks if a certain font is registered.
      void register​(java.lang.String path)
      Register a ttf- or a ttc-file.
      void register​(java.lang.String path, java.lang.String alias)
      Register a font file and use an alias for the font contained in it.
      int registerDirectories()
      Register fonts in some probable directories.
      int registerDirectory​(java.lang.String dir)
      Register all the fonts in a directory.
      int registerDirectory​(java.lang.String dir, boolean scanSubdirectories)
      Register all the fonts in a directory and possibly its subdirectories.
      void registerFamily​(java.lang.String familyName, java.lang.String fullName, java.lang.String path)
      Register a font by giving explicitly the font family and name.
      protected boolean saveCopyOfRegularFont​(java.lang.String regularFontName, java.lang.String path)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOGGER

        private static final Logger LOGGER
      • trueTypeFonts

        private final java.util.Hashtable<java.lang.String,​java.lang.String> trueTypeFonts
        This is a map of postscriptfontnames of True Type fonts and the path of their ttf- or ttc-file.
      • TTFamilyOrder

        private static java.lang.String[] TTFamilyOrder
      • fontFamilies

        private final java.util.Hashtable<java.lang.String,​java.util.ArrayList<java.lang.String>> fontFamilies
        This is a map of fontfamilies.
      • defaultEncoding

        public java.lang.String defaultEncoding
        This is the default encoding to use.
      • defaultEmbedding

        public boolean defaultEmbedding
        This is the default value of the embedded variable.
    • Constructor Detail

      • FontFactoryImp

        public FontFactoryImp()
        Creates new FontFactory
    • Method Detail

      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            boolean embedded,
                            float size,
                            int style,
                            BaseColor color)
        Constructs a Font-object.
        Specified by:
        getFont in interface FontProvider
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        embedded - true if the font is to be embedded in the PDF
        size - the size of this font
        style - the style of this font
        color - the BaseColor of this font.
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            boolean embedded,
                            float size,
                            int style,
                            BaseColor color,
                            boolean cached)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        embedded - true if the font is to be embedded in the PDF
        size - the size of this font
        style - the style of this font
        color - the BaseColor of this font.
        cached - true if the font comes from the cache or is added to the cache if new, false if the font is always created new
        Returns:
        the Font constructed based on the parameters
      • getBaseFont

        protected BaseFont getBaseFont​(java.lang.String fontname,
                                       java.lang.String encoding,
                                       boolean embedded,
                                       boolean cached)
                                throws java.io.IOException,
                                       DocumentException
        Throws:
        java.io.IOException
        DocumentException
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            boolean embedded,
                            float size,
                            int style)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        embedded - true if the font is to be embedded in the PDF
        size - the size of this font
        style - the style of this font
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            boolean embedded,
                            float size)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        embedded - true if the font is to be embedded in the PDF
        size - the size of this font
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            boolean embedded)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        embedded - true if the font is to be embedded in the PDF
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            float size,
                            int style,
                            BaseColor color)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        size - the size of this font
        style - the style of this font
        color - the BaseColor of this font.
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            float size,
                            int style)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        size - the size of this font
        style - the style of this font
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding,
                            float size)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        size - the size of this font
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            float size,
                            BaseColor color)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        size - the size of this font
        color - the BaseColor of this font.
        Returns:
        the Font constructed based on the parameters
        Since:
        2.1.0
      • getFont

        public Font getFont​(java.lang.String fontname,
                            java.lang.String encoding)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        encoding - the encoding of the font
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            float size,
                            int style,
                            BaseColor color)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        size - the size of this font
        style - the style of this font
        color - the BaseColor of this font.
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            float size,
                            int style)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        size - the size of this font
        style - the style of this font
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname,
                            float size)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        size - the size of this font
        Returns:
        the Font constructed based on the parameters
      • getFont

        public Font getFont​(java.lang.String fontname)
        Constructs a Font-object.
        Parameters:
        fontname - the name of the font
        Returns:
        the Font constructed based on the parameters
      • registerFamily

        public void registerFamily​(java.lang.String familyName,
                                   java.lang.String fullName,
                                   java.lang.String path)
        Register a font by giving explicitly the font family and name.
        Parameters:
        familyName - the font family
        fullName - the font name
        path - the font path
      • register

        public void register​(java.lang.String path)
        Register a ttf- or a ttc-file.
        Parameters:
        path - the path to a ttf- or ttc-file
      • register

        public void register​(java.lang.String path,
                             java.lang.String alias)
        Register a font file and use an alias for the font contained in it.
        Parameters:
        path - the path to a font file
        alias - the alias you want to use for the font
      • saveCopyOfRegularFont

        protected boolean saveCopyOfRegularFont​(java.lang.String regularFontName,
                                                java.lang.String path)
      • registerDirectory

        public int registerDirectory​(java.lang.String dir)
        Register all the fonts in a directory.
        Parameters:
        dir - the directory
        Returns:
        the number of fonts registered
      • registerDirectory

        public int registerDirectory​(java.lang.String dir,
                                     boolean scanSubdirectories)
        Register all the fonts in a directory and possibly its subdirectories.
        Parameters:
        dir - the directory
        scanSubdirectories - recursively scan subdirectories if true
        Returns:
        the number of fonts registered
        Since:
        2.1.2
      • registerDirectories

        public int registerDirectories()
        Register fonts in some probable directories. It usually works in Windows, Linux and Solaris.
        Returns:
        the number of fonts registered
      • getRegisteredFonts

        public java.util.Set<java.lang.String> getRegisteredFonts()
        Gets a set of registered fontnames.
        Returns:
        a set of registered fonts
      • getRegisteredFamilies

        public java.util.Set<java.lang.String> getRegisteredFamilies()
        Gets a set of registered fontnames.
        Returns:
        a set of registered font families
      • isRegistered

        public boolean isRegistered​(java.lang.String fontname)
        Checks if a certain font is registered.
        Specified by:
        isRegistered in interface FontProvider
        Parameters:
        fontname - the name of the font that has to be checked.
        Returns:
        true if the font is found