Class CjkResourceLoader


  • public final class CjkResourceLoader
    extends java.lang.Object
    This class is responsible for loading and handling CJK fonts and CMaps from font-asian package.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private CjkResourceLoader()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static IntHashtable createMetric​(java.lang.String s)  
      static java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.Object>> getAllPredefinedCidFonts()
      Get all loaded predefined CID fonts.
      static CMapByteCid getByte2CidCmap​(java.lang.String cmap)
      Parses CMap with a given name producing it in a form of byte to cid mapping.
      static CMapCidUni getCid2UniCmap​(java.lang.String uniMap)
      Parses CMap with a given name producing it in a form of cid to unicode mapping.
      static CMapCidToCodepoint getCidToCodepointCmap​(java.lang.String cmap)
      Parses CMap with a given name producing it in a form of cid to code point mapping.
      static CMapCodepointToCid getCodepointToCidCmap​(java.lang.String uniMap)
      Parses CMap with a given name producing it in a form of code point to cid mapping.
      static java.lang.String getCompatibleCidFont​(java.lang.String cmap)
      Finds a CJK font family which is compatible to the given CMap.
      static java.util.Set<java.lang.String> getCompatibleCmaps​(java.lang.String fontName)
      Finds all CMap names that belong to the same registry to which a given font belongs.
      static java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> getRegistryNames()
      Get all loaded CJK registry names mapped to a set of compatible cmaps.
      static CMapUniCid getUni2CidCmap​(java.lang.String uniMap)
      Parses CMap with a given name producing it in a form of unicode to cid mapping.
      static boolean isPredefinedCidFont​(java.lang.String fontName)
      Checks if the font with the given name and encoding is one of the predefined CID fonts.
      private static void loadRegistry()  
      private static <T extends AbstractCMap>
      T
      parseCmap​(java.lang.String name, T cmap)  
      private static java.util.Map<java.lang.String,​java.lang.Object> readFontProperties​(java.lang.String name)  
      (package private) static void setCmapLocation​(CMapLocationResource cmapLocation)  
      • Methods inherited from class java.lang.Object

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

      • allCidFonts

        private static final java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.Object>> allCidFonts
      • registryNames

        private static final java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> registryNames
      • CJK_REGISTRY_FILENAME

        private static final java.lang.String CJK_REGISTRY_FILENAME
        See Also:
        Constant Field Values
    • Constructor Detail

      • CjkResourceLoader

        private CjkResourceLoader()
    • Method Detail

      • isPredefinedCidFont

        public static boolean isPredefinedCidFont​(java.lang.String fontName)
        Checks if the font with the given name and encoding is one of the predefined CID fonts.
        Parameters:
        fontName - the font name.
        Returns:
        true if it is CJKFont.
      • getCompatibleCidFont

        public static java.lang.String getCompatibleCidFont​(java.lang.String cmap)
        Finds a CJK font family which is compatible to the given CMap.
        Parameters:
        cmap - a name of the CMap for which compatible font is searched.
        Returns:
        a CJK font name if there's known compatible font for the given cmap name, or null otherwise.
      • getCompatibleCmaps

        public static java.util.Set<java.lang.String> getCompatibleCmaps​(java.lang.String fontName)
        Finds all CMap names that belong to the same registry to which a given font belongs.
        Parameters:
        fontName - a name of the font for which CMap's are searched.
        Returns:
        a set of CMap names corresponding to the given font.
      • getAllPredefinedCidFonts

        public static java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.Object>> getAllPredefinedCidFonts()
        Get all loaded predefined CID fonts.
        Returns:
        predefined CID fonts.
      • getRegistryNames

        public static java.util.Map<java.lang.String,​java.util.Set<java.lang.String>> getRegistryNames()
        Get all loaded CJK registry names mapped to a set of compatible cmaps.
        Returns:
        CJK registry names mapped to a set of compatible cmaps.
      • getCid2UniCmap

        public static CMapCidUni getCid2UniCmap​(java.lang.String uniMap)
        Parses CMap with a given name producing it in a form of cid to unicode mapping.
        Parameters:
        uniMap - a CMap name. It is expected that CMap identified by this name defines unicode to cid mapping.
        Returns:
        an object for convenient mapping from cid to unicode. If no CMap was found for provided name an exception is thrown.
      • getUni2CidCmap

        public static CMapUniCid getUni2CidCmap​(java.lang.String uniMap)
        Parses CMap with a given name producing it in a form of unicode to cid mapping.
        Parameters:
        uniMap - a CMap name. It is expected that CMap identified by this name defines unicode to cid mapping.
        Returns:
        an object for convenient mapping from unicode to cid. If no CMap was found for provided name an exception is thrown.
      • getByte2CidCmap

        public static CMapByteCid getByte2CidCmap​(java.lang.String cmap)
        Parses CMap with a given name producing it in a form of byte to cid mapping.
        Parameters:
        cmap - a CMap name. It is expected that CMap identified by this name defines byte to cid mapping.
        Returns:
        an object for convenient mapping from byte to cid. If no CMap was found for provided name an exception is thrown.
      • getCidToCodepointCmap

        public static CMapCidToCodepoint getCidToCodepointCmap​(java.lang.String cmap)
        Parses CMap with a given name producing it in a form of cid to code point mapping.
        Parameters:
        cmap - a CMap name. It is expected that CMap identified by this name defines code point to cid mapping.
        Returns:
        an object for convenient mapping from cid to code point. If no CMap was found for provided name an exception is thrown.
      • getCodepointToCidCmap

        public static CMapCodepointToCid getCodepointToCidCmap​(java.lang.String uniMap)
        Parses CMap with a given name producing it in a form of code point to cid mapping.
        Parameters:
        uniMap - a CMap name. It is expected that CMap identified by this name defines code point to cid mapping.
        Returns:
        an object for convenient mapping from code point to cid. If no CMap was found for provided name an exception is thrown.
      • loadRegistry

        private static void loadRegistry()
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • readFontProperties

        private static java.util.Map<java.lang.String,​java.lang.Object> readFontProperties​(java.lang.String name)
                                                                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • createMetric

        private static IntHashtable createMetric​(java.lang.String s)
      • parseCmap

        private static <T extends AbstractCMap> T parseCmap​(java.lang.String name,
                                                            T cmap)