java实现PDF转tif格式并且设置颜色和dpi

亲测,完美转换!

 public static void pdfToTif() {
        PDDocument doc = null;
        FileOutputStream fos = null;
        try {
            //获取pdf的内容
            doc = PDDocument.load(new File("D:\\1.pdf"));
            //获取pdf的页数
            int pageCount = doc.getNumberOfPages();
            // 根据PDDocument对象创建pdf渲染器
            PDFRenderer renderer = new PDFRenderer(doc); 
            List<PlanarImage> piList = new ArrayList<PlanarImage>(pageCount - 1);
            // 创建tiff编码参数类
            TIFFEncodeParam param = new TIFFEncodeParam();
            // 压缩参数
            param.setCompression(TIFFEncodeParam.COMPRESSION_DEFLATE);
            // 设置图片的迭代器
            param.setExtraImages(piList.iterator());
            for (int i = 0; i < pageCount; i++) {
            //第二个参数代表图片的dpi 照片分辨率,第三个参数设置图片的颜色RGB彩色,BINARY黑白,GRAY灰色
                BufferedImage fimg = renderer.renderImageWithDPI(i, 720, ImageType.RGB);
                // 通过JAI的create()方法实例化jai的图片对象
                PlanarImage fpi = JAI.create("mosaic", fimg); 
                File file = new File("D:\\newPath\\"+ (i + 1) + ".tif");
                fos = new FileOutputStream(file);
                 //指定格式类型为tiff
                ImageEncoder enc = ImageCodec.createImageEncoder("tiff", fos, param);
                // 指定进行编码的jai图片对象,并将输出写入tiff文件中
                enc.encode(fpi);
                if (fos !=null) {
                    fos.close();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (doc != null)
                    doc.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

所需依赖:

<dependency>
    <groupId>com.sun.media</groupId>
    <artifactId>jai_codec</artifactId>
    <version>1.1-mr</version>
</dependency>
<dependency>
    <groupId>javax.media</groupId>
    <artifactId>jai_core</artifactId>
    <version>1.1-mr</version>
</dependency>
<dependency>
    <groupId>com.sun.medialib</groupId>
    <artifactId>mlibwrapper_jar</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.0-RC2</version>
</dependency>

jar包一般下载不下来 需要去网上下载

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页