Class ResManager

java.lang.Object
org.ofdrw.layout.engine.ResManager

public class ResManager extends Object
公共资源管理器

管理待加入文档中所有资源

Since:
2020-03-22 16:20:07
Author:
权观宇
  • Field Details

    • newResIds

      public ArrayList<org.ofdrw.core.basicType.ST_ID> newResIds
      新增资源对象ID
  • Constructor Details

    • ResManager

      public ResManager(OFDDir root, DocDir docDir, AtomicInteger maxUnitID)
      创建资源管理器

      要求文档 Doc_N 路径中存在 Document.xml

      Parameters:
      root - 文档根目录
      docDir - 文档虚拟容器,请确保文档容器中存在 Document.xml
      maxUnitID - 自增最大ID提供者
      Throws:
      RuntimeException - 文档解析异常
    • ResManager

      public ResManager(OFDReader reader) throws FileNotFoundException, org.dom4j.DocumentException
      创建资源管理器,

      要求文档 Doc_N 路径中存在 Document.xml

      Parameters:
      reader - OFD解析器
      Throws:
      org.dom4j.DocumentException - 文档解析异常
      FileNotFoundException - OFD文档结构非法
    • ResManager

      @Deprecated public ResManager(DocDir docDir, AtomicInteger maxUnitID)
      Deprecated.
      缺少根容器可能导致部分资源无法获取,请使用 ResManager(OFDDir, DocDir, AtomicInteger)
      创建资源管理

      要求文档 Doc_N 路径中存在 Document.xml

      Parameters:
      docDir - 文档虚拟容器,请确保文档容器中存在 Document.xml
      maxUnitID - 自增最大ID提供者
  • Method Details

    • addFont

      public org.ofdrw.core.basicType.ST_ID addFont(Font font) throws IOException
      增加字体资源

      如果字体已经被加入,那么不会重复加入

      Parameters:
      font - 字体描述对象
      Returns:
      字体的对象ID
      Throws:
      IOException - 文件复制异常
    • addFontRet

      public org.ofdrw.core.text.font.CT_Font addFontRet(Font font) throws IOException
      增加字体资源 并获取 添加的字体对象

      如果字体已经被加入,那么不会重复加入

      Parameters:
      font - 字体描述对象
      Returns:
      字体的对象
      Throws:
      IOException - 文件复制异常
    • addImage

      public org.ofdrw.core.basicType.ST_ID addImage(Path imgPath) throws IOException
      加入一个图片资源

      如果图片已经存在那么不会重复加入

      Parameters:
      imgPath - 图片路径,请避免资源和文档中已经存在的资源重复
      Returns:
      资源ID
      Throws:
      IOException - 文件复制异常
    • addDrawParam

      public org.ofdrw.core.basicType.ST_ID addDrawParam(org.ofdrw.core.pageDescription.drawParam.CT_DrawParam param)
      加入一个绘制参数

      如果存在相同或类似的绘制参数则不会重复添加。

      Parameters:
      param - 绘制参数
      Returns:
      资源ID
    • pubRes

      public org.ofdrw.core.basicStructure.res.Res pubRes()
      获取公共资源清单

      如: 图形、字体等需要共用的资源

      Returns:
      公共资源清单
    • docRes

      public org.ofdrw.core.basicStructure.res.Res docRes()
      文档资源清单

      与文档相关的资源:图片、视频等

      Returns:
      文档资源清单
    • addRaw

      @Deprecated public ResManager addRaw(org.ofdrw.core.OFDElement resObj)
      直接向资源列表中加入资源对象

      注意:该方法是一个原生方法,具有一定的资源重复风险。

      Parameters:
      resObj - 资源对象
      Returns:
      this
    • addRawWithCache

      public org.ofdrw.core.basicType.ST_ID addRawWithCache(org.ofdrw.core.OFDElement resObj)
      直接向资源列表中加入资源对象

      加入资源时将优先检查缓存是否存在完全一致的资源,如果存在则复用对象。

      注意:加入对象的ID将被忽略,对象ID有资源管理器生成并设置。

      Parameters:
      resObj - 资源对象
      Returns:
      对象在文档中的资源ID
    • getFont

      public ExistCTFont getFont(String name)
      通过字族名获取字体对象,如果无法找到则返还null
      Parameters:
      name - 字体名称
      Returns:
      字体对象 或 null
    • setRoot

      public void setRoot(OFDDir root)
      设置文档的根节点
      Parameters:
      root - 根节点
    • getRoot

      public OFDDir getRoot()
      获取文档根容器
      Returns:
      文档根容器
    • getNewResIds

      public ArrayList<org.ofdrw.core.basicType.ST_ID> getNewResIds()
      获取新加入的资源ID
      Returns:
      新加入的资源ID
    • getDocDir

      public DocDir getDocDir()
      获取当前操作的文档容器
      Returns:
      文档容器