Class FontLoader

java.lang.Object
org.ofdrw.converter.FontLoader

public final class FontLoader extends Object
字体加载器
Since:
2021-04-13 19:00:39
Author:
qaqtutu
  • Field Details

    • DEBUG

      public static boolean DEBUG
  • Method Details

    • enableSimilarFontReplace

      @Deprecated public static FontLoader enableSimilarFontReplace()
      是否开启 字体替换,替换规则 similarFontReplaceRegexMapping
      Returns:
      实例
    • setSimilarFontReplace

      public static FontLoader setSimilarFontReplace(boolean enable)
      设置是否开启相近字体替换

      该方法用于在字体无法识别的情况下采用默认的字体进行替换 防止渲染时字体内容缺失。

      Parameters:
      enable - true - 开启(默认); false - 关闭
      Returns:
      实例
    • getInstance

      public static FontLoader getInstance()
      获取字体加载器实例并加载程序
      Returns:
      字体加载器
    • Preload

      public static FontLoader Preload()
      预加载字体

      扫描操作系统内字体,功能与getInstance() 一致

      Returns:
      字体加载器
    • init

      public void init()
    • loadAsDefaultFont

      public static boolean loadAsDefaultFont(String path)
      尝试加载为默认字体
      Parameters:
      path - 字体路径
      Returns:
      true - 加载成功;false - 加载失败
    • addAliasMapping

      @Deprecated public FontLoader addAliasMapping(String familyName, String fontName, String aliasFamilyName, String aliasFontName)
      追加字体映射
      Parameters:
      familyName - 字族名
      fontName - 字体名
      aliasFamilyName - 字族别名
      aliasFontName - 字体别名
      Returns:
      this
    • addAliasMapping

      public FontLoader addAliasMapping(String fontName, String alias)
      添加字体映射
      Parameters:
      fontName - 字体名称
      alias - 字体别名
      Returns:
      this
    • addSimilarFontReplaceRegexMapping

      @Deprecated public FontLoader addSimilarFontReplaceRegexMapping(String familyNameRegex, String fontNameRegex, String aliasFamilyName, String aliasFontName)
      追加相似字体正则匹配规则
      Parameters:
      familyNameRegex - 字族名匹配规则
      fontNameRegex - 字体名匹配规则
      aliasFamilyName - 字族别名
      aliasFontName - 字体别名
      Returns:
      this
    • addSimilarFontReplaceRegexMapping

      public FontLoader addSimilarFontReplaceRegexMapping(String fontNameRegex, String fontName)
      追加相似字体正则匹配规则
      Parameters:
      fontNameRegex - 字体名匹配规则
      fontName - 相近替换字体名
      Returns:
      this
    • addSystemFontMapping

      @Deprecated public FontLoader addSystemFontMapping(String familyName, String fontName, String fontFilePath)
      增加字体映射

      用于解决部分字体不存在时的替代

      Parameters:
      familyName - 字族名
      fontName - 字体名
      fontFilePath - 字体位置
      Returns:
      this
    • addSystemFontMapping

      public FontLoader addSystemFontMapping(String fontName, String fontFilePath)
      增加字体映射

      用于解决部分字体不存在时的替代

      Parameters:
      fontName - 字体名
      fontFilePath - 字体位置
      Returns:
      this
    • getSystemFontPath

      public String getSystemFontPath(String familyName, String fontName)
      从操作系统字体目下获取字体路径
      Parameters:
      familyName - 字族名(用于在字体不存在是替代字体,可为空)
      fontName - 字体名
      Returns:
      字体操作系统内绝对路径,如果不存在返还null
    • getReplaceSimilarFontPath

      public String getReplaceSimilarFontPath(String familyName, String fontName)
      获取配置的 相似字体 对应的字体路径
      Parameters:
      familyName - 字族名(用于在字体不存在是替代字体,可为空)
      fontName - 字体名
      Returns:
      字体操作系统内绝对路径,如果不存在返还 null
    • loadSystemFont

      public TrueTypeFont loadSystemFont(String familyName, String fontName)
      尝试从系统字体目录中加载字体
      Parameters:
      familyName - 字族名
      fontName - 字体名
      Returns:
      字体或null
    • loadExternalFont

      @Deprecated public TrueTypeFont loadExternalFont(String absPath)
      加载外部字体
      Parameters:
      absPath - 绝对路径
      Returns:
      null或外部字体
    • loadExternalFont

      public TrueTypeFont loadExternalFont(String absPath, String familyName, String fontName)
      加载外部字体
      Parameters:
      absPath - 字体操作系统绝对路径
      familyName - 字族名,因为是可选参数忽略
      fontName - 字体名
      Returns:
      字体
    • loadFont

      public TrueTypeFont loadFont(ResourceLocator rl, org.ofdrw.core.text.font.CT_Font ctFont)
      加载字体

      兼容性保留

      Parameters:
      rl - 资源加载器,用于从虚拟容器中取出文件
      ctFont - 字体对象
      Returns:
      字体或null
    • loadFontSimilar

      public FontWrapper<TrueTypeFont> loadFontSimilar(ResourceLocator rl, org.ofdrw.core.text.font.CT_Font ctFont)
      加载字体
      Parameters:
      rl - 资源加载器,用于从虚拟容器中取出文件
      ctFont - 字体对象
      Returns:
      字体或null
    • loadFontSimilarStream

      public InputStream loadFontSimilarStream(ResourceLocator rl, org.ofdrw.core.text.font.CT_Font ctFont)
      加载相近字体流
      Parameters:
      rl - 资源加载器,用于从虚拟容器中取出文件
      ctFont - 字体对象
      Returns:
      字体流
    • getFontAlias

      public String getFontAlias(org.ofdrw.core.text.font.CT_Font ctFont)
      获取字体别名
      Parameters:
      ctFont - 字体对象
      Returns:
    • loadPDFFontSimilar

      public FontWrapper<com.itextpdf.kernel.font.PdfFont> loadPDFFontSimilar(ResourceLocator rl, org.ofdrw.core.text.font.CT_Font ctFont, boolean isNoGlyphs)
      尽可能的加载字体

      如果字体无法加载时使用相近字体替换

      Parameters:
      rl - 资源加载器,用于从虚拟容器中取出文件
      ctFont - 字体对象
      isNoGlyphs - 是否不存在字符索引
      Returns:
      字体 或 null
    • loadDefaultFont

      public TrueTypeFont loadDefaultFont()
      加载默认字体
      Returns:
      默认字体宋体
    • scanFontDir

      public void scanFontDir(File dir)
      扫描目录下所有字体并加兹安
      Parameters:
      dir - 目录
    • scanFontDir

      public void scanFontDir(Path dirPath)
      扫描目录下所有字体并加兹安
      Parameters:
      dirPath - 目录路径
    • loadFont

      public void loadFont(Path file)
      加载字体到映射中
      Parameters:
      file - 字体文件
    • loadFont

      public void loadFont(File file)
      加载字体到映射中

      支持:otf、ttf、ttc格式

      Parameters:
      file - 字体文件路径
    • FixOS2

      public static void FixOS2(String src) throws IOException
      修复了字体

      小写os/2导致无法读取的问题

      Parameters:
      src - 待修复字体文件路径
      Throws:
      IOException - 文件读写IO异常
    • getDefaultFont

      public TrueTypeFont getDefaultFont()
      默认字体解析模式
      Returns:
      字体
    • getITextDefaultFont

      public com.itextpdf.io.font.TrueTypeFont getITextDefaultFont()
      默认字体iText格式
      Returns:
      字体
    • getDefaultFontPath

      public Path getDefaultFontPath()
      获取默认字体文件路径
      Returns:
      文件路径