java pdf转png

来源:互联网 发布:软件的license 编辑:程序博客网 时间:2024/06/06 01:40
package zh.demo.pdfDemo;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 java.io.IOException;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;import javax.imageio.ImageIO;import com.sun.pdfview.PDFFile;import com.sun.pdfview.PDFPage;/** * pdf 转png/jpg类 *  * @author zhangheng * @date 2016年10月26日下午1:36:55 * */public class PdfDemo {    public static void main(String[] args) {        PdfDemo.changePdfToImg();    }    private static void changePdfToImg() {        try {            File file = new File("D:\\demo.pdf");            RandomAccessFile raf = new RandomAccessFile(file, "r");            FileChannel channel = raf.getChannel();            MappedByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());            PDFFile pdffile = new PDFFile(buf);            for (int i = 1; i <= pdffile.getNumPages(); i++) {                PDFPage page = pdffile.getPage(i);                Rectangle rect = new Rectangle(0, 0, ((int) page.getBBox().getWidth()),                        ((int) page.getBBox().getHeight()));                Image img = page.getImage(rect.width, rect.height, rect, null, true, true);                BufferedImage tag = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB);                tag.getGraphics().drawImage(img, 0, 0, rect.width, rect.height, null);                FileOutputStream out = new FileOutputStream("D:\\demo" + i + ".jpg"); // 输出到文件流                ImageIO.write(tag, "jpg", out);                out.close();            }            channel.close();            raf.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}
1 0