当前位置:   article > 正文

ofd转图片临时文件删除_ofdrw-converter

ofdrw-converter

pom依赖:

<dependency>
  <groupId>org.ofdrw</groupId>
  <artifactId>ofdrw-converter</artifactId>
  <version>1.17.18</version>
</dependency>

代码实现:

import com.alibaba.fastjson.JSON;
import org.ofdrw.converter.ImageMaker;
import org.ofdrw.reader.OFDReader;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

public class OfdToJpgTest {
    public static void main(String[] args) {
        String fileAddress = "D:/tmpfiles";
        String filename = "test00.ofd";
        String type = "jpg";
        List<String> list = ofd2png(fileAddress, filename, type);
        System.out.println("---list="+ JSON.toJSONString(list));
    }

    public static List<String> ofd2png(String fileAddress, String filename, String type) {
        // 将ofd转图片 并且自定义图片的格式大小
        List<String> picList= new ArrayList<String>();
        try {
            //filename文件路径到文件名
            System.out.println("addr===="+fileAddress + "/" + filename);
            //文件输入路径
            Path src = Paths.get(fileAddress + "/" + filename);
//            ImageMaker imageMaker = new ImageMaker(new OFDReader(src), 15);
//            ImageMaker imageMaker = new ImageMaker(new OFDReader(fileAddress + "/" + filename), 15);
            // 创建转换转换对象,设置 每毫米像素数量(Pixels per millimeter)
            //删除new OFDReader(src)时产生的前缀为ofd-tmp-的临时文件假文件 try close 语法
            try(OFDReader reader = new OFDReader(src)){
                ImageMaker imageMaker = new ImageMaker(reader, 15);
                imageMaker.config.setDrawBoundary(false);
                for (int i = 0; i < imageMaker.pageSize(); i++) {
                    //指定页码转换图片
                    BufferedImage image = imageMaker.makePage(i);
                    //文件要存的路径
                    String picAdd =fileAddress + "/" + filename.replace(".ofd","") + "_" + (i + 1) + "." + type;
                    //存储为指定格式图片
                    ImageIO.write(image, "PNG", new File(picAdd));
                    picList.add(picAdd.replace(fileAddress,""));
                }
            }catch (IOException e){
                System.out.println("ofd转图片失败{}"+JSON.toJSONString(fileAddress + "/" + filename));
            }


        } catch (Exception e) {
            System.out.println("OFD转图片出错,文件为:{}"+fileAddress+"/"+filename);
            e.printStackTrace();
        }
        System.out.println("picList:{}"+picList);
        return picList;
    }
}

在JDK7优化后的try-with-resource语句确保了每个资源在语句结束时关闭。try()里面的流对象对应的类都实现了自动关闭接口AutoCloseable。

try (创建流对象语句,如果多个使用';'隔开) {

        // 读写数据、输入输出流的操作

} catch (IOException e) {

        e.printStackTrace();

}

//jdk1.7之后
try(FileWriter fileWriter = new FileWriter("D:\\tmpfiles\\a\\test.txt")){
    fileWriter.write("test 哈哈!");
} catch (IOException e) {
    e.printStackTrace();
}


//jdk1.7之前
FileWriter fileWriter = null;
try {
    fileWriter = new FileWriter("D:\\tmpfiles\\a\\test.txt");
    fileWriter.write("test 哈哈");
} catch (IOException e) {
    e.printStackTrace();
}finally {
    if(fileWriter != null){
        try {
            fileWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/781832
推荐阅读
相关标签
  

闽ICP备14008679号