pdf转成图片

http://blog.csdn.net/wydhao123/article/details/51596028

jar commons-logging.jar、 pdfbox-2.0.1.jar、fontbox-2.0.1.jar

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;  

import javax.imageio.ImageIO;  

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;  

public class PDFBOXCreate {  

    public static void main(String[] args)throws Exception {
        long start = System.currentTimeMillis();
        String filepath = "D:/Users/ex-wangyide001/workspace/testsrc/1.pdf";
        PDDocument document = new PDDocument();
        File pdfFile = new File(filepath);
        document = PDDocument.load(pdfFile, (String)null);
        int size = document.getNumberOfPages();
        List<BufferedImage> piclist = new ArrayList();
        for(int i=0 ; i < size; i++){
            BufferedImage  image = new PDFRenderer(document).renderImageWithDPI(i,130,ImageType.RGB);
            piclist.add(image);
        }
        document.close();
        yPic(piclist,"D:/Users/ex-wangyide001/workspace/testsrc/PDFBox1.jpg");
       /* FileOutputStream out = new FileOutputStream("D:/Users/ex-wangyide001/workspace/testsrc/yanglaoxian/PDFBox-"+i+".jpg");
        ImageIO.write(image, "jpg", out);
        out.close();*/
        long end = System.currentTimeMillis();
        System.out.println(end-start);
    }  

    /**
     * 将宽度相同的图片,竖向追加在一起 ##注意:宽度必须相同
     *
     * @param piclist
     *            文件流数组
     * @param outPath
     *            输出路径
     */
    public static void yPic(List<BufferedImage> piclist, String outPath) {// 纵向处理图片
        if (piclist == null || piclist.size() <= 0) {
            System.out.println("图片数组为空!");
            return;
        }
        try {
            int height = 0, // 总高度
            width = 0, // 总宽度
            _height = 0, // 临时的高度 , 或保存偏移高度
            __height = 0, // 临时的高度,主要保存每个高度
            picNum = piclist.size();// 图片的数量
            File fileImg = null; // 保存读取出的图片
            int[] heightArray = new int[picNum]; // 保存每个文件的高度
            BufferedImage buffer = null; // 保存图片流
            List<int[]> imgRGB = new ArrayList<int[]>(); // 保存所有的图片的RGB
            int[] _imgRGB; // 保存一张图片中的RGB数据
            for (int i = 0; i < picNum; i++) {
                buffer = piclist.get(i);
                heightArray[i] = _height = buffer.getHeight();// 图片高度
                if (i == 0) {
                    width = buffer.getWidth();// 图片宽度
                }
                height += _height; // 获取总高度
                _imgRGB = new int[width * _height];// 从图片中读取RGB
                _imgRGB = buffer
                        .getRGB(0, 0, width, _height, _imgRGB, 0, width);
                imgRGB.add(_imgRGB);
            }
            _height = 0; // 设置偏移高度为0
            // 生成新图片
            BufferedImage imageResult = new BufferedImage(width, height,
                    BufferedImage.TYPE_INT_BGR);
            for (int i = 0; i < picNum; i++) {
                __height = heightArray[i];
                if (i != 0)
                    _height += __height; // 计算偏移高度
                imageResult.setRGB(0, _height, width, __height, imgRGB.get(i),
                        0, width); // 写入流中
            }
            File outFile = new File(outPath);
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            ImageIO.write(imageResult, "jpg", out);// 写图片
            byte[] b = out.toByteArray();
            FileOutputStream output = new FileOutputStream(outFile);
            output.write(b);
            out.close();
            output.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
时间: 2024-08-29 10:22:57

pdf转成图片的相关文章

20140526-一个从pdf转换成图片的类,工作当中有用到

20140526-一个从pdf转换成图片的类,工作当中有用到 package com.jako.database.model; import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import

C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理)

原文:C#技术分享[PDF转换成图片--13种方案](2013-07-25重新整理) 重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 写在最前面:为了节约大家时间,撸主把最常用的方法写在第一条,如果不满足您的需要,您可以继续往后看. 如果看完全文还是不能解决您的问题,欢迎加撸主的QQ群(274281457)进行讨论. 木有csdn分的童鞋,可以去github clone,地址:https://github.com/stone0090/OfficeTools.Pdf2Im

C#技术分享【PDF转换成图片——11种方案】

1.[iTextSharp.dll],C# 开源PDF处理工具,可以任意操作PDF,并可以提取PDF中的文字和图片,但不能直接将PDF转换成图片. DLL和源码 下载地址:http://download.csdn.net/detail/shi0090/4065982 中文帮助文档 下载地址:http://download.csdn.net/detail/shi0090/4065986 提取文字测试工程 下载地址:http://download.csdn.net/detail/shi0090/40

PDF转换成图片的小技巧,快快收藏

不论是学习还是工作,我们都会跟各种类型的文档打交道,时间久了,遇到的问题也会千奇百怪,比如:将PDF转换成图片的问题你遇到过吗?这个时候别慌,多学习一些技能,就能游刃有余.小编这里就有一个现成的PDF转换成图片的教程, 大家可以学习一下,以备不时之需. 1.前往在线PDF转换平台--pdf365.cn 2.点击"PDF转图片"图标,进入PDF文档上传页面,将需要转换的PDF文档添加到转换窗口中: 3.点击"开始转换"按钮,即可完成在线PDF转换成图片: 4.转换成功

分享在线pdf转换成图片格式方法

突然接到通知,被要求将pdf转换成jpg格式,而且需要在规定时间内完成大家会采取什么方法呢?截图显然不行,想要尽快完成转换任务其实只要找到专业的转换工具或平台就能完成啦,不仅转换速度快,而且效果好. 如果要转的文件并不是太多,那么可以用在线pdf转换器进行转换,先进入在线pdf转图片转换平台: 可以看到页面中有“选择文件”和“开始转换”按钮.我们先单击“选择文件”按钮,将要转的文件添加到转换页面中来: 接着单击“开始转换“按钮,转换速度很快,一会转换就能完成: 转换完成之后只要将文件下载下来就可

如何在线将PDF转成图片

虽然现在PDF文件比较常见,但是还是有很电脑设备上没有PDF文件的阅读工具,因此在发送一些文档资料的时候如果文档是PDF格式,可以将其转为图片文件,这样在任何设备上都能查看,并且内容也不会被修改.而将PDF转图片可以通过在线就能进行转换. 运用在线pdf转图片工具,在第一类的Office文档与PDF互相转换中找到PDF转图片,也就是最后一个选项,点击进入到下个操作页面. 按照提示描述的先“选择文件”再“开始转换”,点击选择选择文件,在“打开”窗口中选择本地电脑上需要转换的PDF文件,选择的文件会

实例——使用PDFRenderer将pdf转化成图片

PDF-Renderer是Sun公布的一个开源项目, 它主要目的是方便用户展示PDF文档. 通过解析PDF文档, 使用户能够在自己的应用中查看, 预览,绘制PNG和合并到3D的场景中. 关于该项目的介绍可以看这里.不过貌似很久没更新了.也是,Sun都已被Oracle收购很久了~ 不过前段时间搞PDF打印的时候也实践了一下PDF-Renderer,下面是一段实例代码: public class TestPDFRenderer { public void Pdf_Png(int pageNumber

C#pdf 切割成图片

引用 using Ghostscript.NET;using Ghostscript.NET.Rasterizer; 需要安装 exe文件 public static GhostscriptVersionInfo _lastInstalledVersion = null;        public static GhostscriptRasterizer _rasterizer = null; PdfToImages(string pdfInputPath, string imageOutpu

如何把pdf转成jpg格式的图片

遇到图片格式的PDF文件即使转换成Word也是不能编辑的,可是有PDF文件中的很多精美图片也有很多的作用,这时候我们就可以将这些PDF图片转换成JPG格式.那如何把pdf转成jpg图片格式呢? 首先找到在线pdf转换成图片平台,单击进入: 然后单击选中要转换的文件格式,要将pdf转换成图片,那么单击“pdf转图片”就行了: 然后单击选择文件按钮,将要转换的文件添加进来,并单击开始转换: 转换完成之后会有下载按钮,用来将转换好的文件下载下来: 在线转换的文件不能超过2m,相信大家也都看到了,想要转