java ofd文件格式转化为pdf,双层ofd转为pdf

java ofd文件转pdf

  • ofd与pdf互转

            之前有博客写了ofd与pdf文件进行相互转化, 【pdf与ofd相互转化 】,但是spire-pdf的jar包进行ofd转为pdf时,如果是双层ofd文件,最后转化的结果会丢失上层内容。因此可以使用spire.free.pdf进行pdf转化为ofd,使用ofdr进行ofd转为pdf。

  • ofd转为pdf

    ofdrw-full git 官方文档 ofdrw-full能完整转化spire转化不了的双层ofd文件。
    引入依赖:

    <dependency>
      <groupId>org.ofdrw</groupId>
      <artifactId>ofdrw-full</artifactId>
      <version>1.20.2</version>
    </dependency>
    

    如果出现报错,log4j-slf4j-impl依赖与spring-boot引用的log4j依赖有冲出,直接排除引用即可

    <dependency>
       <groupId>org.ofdrw</groupId>
       <artifactId>ofdrw-full</artifactId>
       <version>1.20.2</version>
       <exclusions>
           <exclusion>
               <artifactId>log4j-slf4j-impl</artifactId>
               <groupId>org.apache.logging.log4j</groupId>
           </exclusion>
       </exclusions>
    </dependency>
    

    转化代码:

      //ofd文件Content-Type内容
    public static final String fileType = "octet-stream";
    
    public static final String ofdType = "ofd";
    /**
     * @return
     * @Author xiangyong.zeng
     * @Description 转化ofd文件,为pdf文件,返回文件路径
     * @Date 18:05 2022/11/29
     * @Param
     **/
    public static String transOfdToPdf(String path) {
        if (StringUtils.isBlank(path)) {
            return null;
        }
        String pdfPath = null;
        if (path.toLowerCase().contains(fileType)) {
            pdfPath = path.toLowerCase().replace(fileType, "pdf");
        } else if (path.toLowerCase().contains(ofdType)) {
            pdfPath = path.toLowerCase().replace(ofdType, "pdf");
        }
    
        //如果路径没有包含ofd的文件内容,则无需进行转化,返回空
        if (StringUtils.isBlank(pdfPath)) {
            return null;
        }
        ConvertHelper.ofd2pdf(path, pdfPath);
    
        return pdfPath;
    }
    
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值