Class OFDArchiveConverter

java.lang.Object
org.ofdrw.archive.convert.OFDArchiveConverter

public class OFDArchiveConverter extends Object
OFD-A 转换器

将普通 OFD 文件转换为符合 GB/T 42133-2022 的 OFD-A 归档文件。 转换流程:

  1. 解压源文件到临时目录 src/
  2. 按编排顺序执行所有去技术化处理器
  3. 从 OFD.xml 出发 DFS 收集可达文件白名单
  4. 按白名单复制文件到 output/,排除非法夹带
  5. 打包 output/ 为 OFD-A 文件
  6. 清理临时目录

使用示例:

    OFDArchiveConverter converter = new OFDArchiveConverter();
    converter.convert(Paths.get("input.ofd"), Paths.get("output.ofd"));
Since:
2.4.0
Author:
权观宇
  • Constructor Details

    • OFDArchiveConverter

      public OFDArchiveConverter()
      创建转换器,加载默认处理器管道
    • OFDArchiveConverter

      public OFDArchiveConverter(List<ArchiveHandler> handlers)
      创建转换器,使用自定义处理器管道
      Parameters:
      handlers - 自定义处理器列表(按顺序执行)
  • Method Details

    • addDecryptor

      public OFDArchiveConverter addDecryptor(UserFEKDecryptor decryptor)
      添加解密器

      便捷方法,用于配置加密 OFD 文件的解密密钥。 仅当 OFD 文件已加密时需要调用;明文 OFD 无需设置。

      使用示例:

          OFDArchiveConverter converter = new OFDArchiveConverter();
          converter.addDecryptor(new UserPasswordDecryptor("张三", "12345678"));
          converter.convert(src, dst);
      
      Parameters:
      decryptor - FEK 解密器
      Returns:
      this
      Throws:
      IllegalStateException - 使用自定义处理器列表且其中无 EncryptionHandler 时
    • convert

      public void convert(Path srcPath, Path dstPath) throws IOException
      将 OFD 文件转换为 OFD-A 格式

      处理完成后输出到 dstPath,源文件不受影响。

      Parameters:
      srcPath - 源 OFD 文件路径
      dstPath - 输出 OFD-A 文件路径
      Throws:
      IOException - 文件操作异常