OFD是Open Fixed-layout Documents的简称,它由中国电子技术标准化研究院(CESI)主导制定,旨在解决当前电子文档格式众多、互不兼容的问题。
在部分面对政务服务的项目中,即有对OFD文件处理的功能。目前,OFD的支持还是相对局限的,今天我们来分享一下基于java的OFD文件转换PDF文件格式的代码,下面直接上代码:
一、依赖
<dependency>
<groupId>org.ofdrw</groupId>
<artifactId>ofdrw-converter</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>ofdrw-reader</groupId>
<artifactId>ofdrw-reader</artifactId>
<version>1.17.18</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ofdrw-reader-1.17.18.jar</systemPath>
</dependency>
注意:这里的ofdrw-reader-1.17.18.jar属于第三方jar包,还未收录到Maven仓库中,因此需要拿到源包进行手动配置依赖。
二、实现方法
public static String ofdToPdf(String originPath, String pdfPath) {
// 1. 文件输入路径
Path src = Paths.get(originPath);
// 2. 转换后文件输出位置
Path dst = Paths.get(pdfPath);
try {
// 3. OFD转换PDF
ConvertHelper.toPdf(src, dst);
System.out.println("生成文档位置: " + dst.toAbsolutePath());
return String.valueOf(dst.toAbsolutePath());
} catch (GeneralConvertException e) {
// pom引入相关模块GeneralConvertException 类型错误表明转换过程中发生异常
e.printStackTrace();
return "";
}
}
三、测试效果
需要转换的ofd文件
public static void main(String[] args) throws IOException {
System.out.println(OfdUtil.ofdToPdf("d:/test/11.ofd", "D:/test/22.pdf"));
}
转换结果:
测试结果正常,通过。
ofdrw-reader-1.17.18.jar的下载地址: