<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
    package effective.java;

    import java.awt.Image;
    import java.awt.Rectangle;
    import java.awt.image.BufferedImage;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.ByteBuffer;
    import java.nio.channels.FileChannel;
    import javax.swing.SwingUtilities;
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGEncodeParam;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    import com.sun.pdfview.PDFFile;
    import com.sun.pdfview.PDFPage;

    public class PdfToJpgTest {
        
    public static void setup() throws IOException {

            
    // load a pdf from a byte buffer
            File file = new File("D:\\workspace\\word2pdf\\src\\tests.doc.pdf");
            RandomAccessFile raf 
    = new RandomAccessFile(file, "r");
            FileChannel channel 
    = raf.getChannel();
            ByteBuffer buf 
    = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel
                    .size());
            PDFFile pdffile 
    = new PDFFile(buf);

            System.out.println(
    "頁數(shù): " + pdffile.getNumPages());

            String getPdfFilePath 
    = System.getProperty("user.dir"+ "\\pdfPicFile";

            System.out.println(
    "getPdfFilePath is  :" + getPdfFilePath);

            
    for (int i = 1; i <= pdffile.getNumPages(); i++) {
                
    // draw the first page to an image
                PDFPage page = pdffile.getPage(i);

                
    // get the width and height for the doc at the default zoom
                Rectangle rect = new Rectangle(00, (int) page.getBBox()
                        .getWidth(), (
    int) page.getBBox().getHeight());

                
    // generate the image
                Image img = page.getImage(rect.width, rect.height, // width &
                        
    // height
                        rect, // clip rect
                        null// null for the ImageObserver
                        true// fill background with white
                        true // block until drawing is done
                        );

                BufferedImage tag 
    = new BufferedImage(rect.width, rect.height,
                        BufferedImage.TYPE_INT_RGB);
                tag.getGraphics().drawImage(img, 
    00, rect.width, rect.height,
                        
    null);

                
    // 輸出到文件流
                FileOutputStream out = new FileOutputStream(getPdfFilePath + "\\"
                        
    + i + ".jpg");
                System.out.println(
    "成功保存圖片到:" + getPdfFilePath + "\\" + i + ".jpg");

                
    /*
                 * JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                 * encoder.encode(tag); // JPEG編碼 out.close();
                 
    */

                JPEGImageEncoder encoder 
    = JPEGCodec.createJPEGEncoder(out);
                JPEGEncodeParam param2 
    = encoder.getDefaultJPEGEncodeParam(tag);
                param2.setQuality(1f, 
    false);// 1f是提高生成的圖片質(zhì)量
                encoder.setJPEGEncodeParam(param2);
                encoder.encode(tag); 
    // JPEG編碼
                out.close();

            }

            
    // show the image in a frame
            
    // JFrame frame = new JFrame("PDF Test");
            
    // frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
    // frame.add(new JLabel(new ImageIcon(img)));
            
    // frame.pack();
            
    // frame.setVisible(true);
        }

        
    public static void main(final String[] args) {
            SwingUtilities.invokeLater(
    new Runnable() {
                
    public void run() {
                    
    try {
                        PdfToJpgTest.setup();
                    } 
    catch (IOException ex) {
                        ex.printStackTrace();
                    }
                }
            });
        }

    }
    依賴的jar包
    PDFRenderer.jar
    posted on 2011-06-17 11:34 雪山飛鵠 閱讀(3381) 評論(2)  編輯  收藏 所屬分類: javase

    Feedback

    # re: java轉(zhuǎn)換pdf to jpg 2011-10-19 11:54 web
    sun.awt.image.ImageFormatException: Unsupported color conversion request
    at sun.awt.image.JPEGImageDecoder.readImage(Native Method)
    at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)  回復(fù)  更多評論
      

    # re: java轉(zhuǎn)換pdf to jpg[未登錄] 2016-07-12 12:30 1
    111  回復(fù)  更多評論
      

    主站蜘蛛池模板: 亚洲VA成无码人在线观看天堂| 亚洲AV无码国产丝袜在线观看 | 可以免费看的卡一卡二| 亚洲国产成人91精品| 国产在线19禁免费观看国产| 一级午夜a毛片免费视频| 亚洲bt加勒比一区二区| 卡一卡二卡三在线入口免费| 思思久久99热免费精品6| 亚洲国产精品无码一线岛国| 啦啦啦高清视频在线观看免费| 污网站在线观看免费| 亚洲视频一区二区三区| 四虎影视永久免费视频观看| 怡红院免费全部视频在线视频| 2020年亚洲天天爽天天噜| 亚洲 无码 在线 专区| 黄在线观看www免费看| 一级特黄色毛片免费看| 亚洲一级在线观看| 亚洲中文字幕第一页在线| 国产免费久久精品99re丫y| 51午夜精品免费视频| 亚洲va在线va天堂va手机| 91麻豆国产自产在线观看亚洲| 91香蕉视频免费| 不卡视频免费在线观看| 亚洲精品无码久久久久秋霞| 亚洲V无码一区二区三区四区观看| 在线免费观看毛片网站| 99re6在线视频精品免费下载| 国产亚洲视频在线观看网址| 亚洲精品国产成人| 国产成A人亚洲精V品无码性色| 热久久精品免费视频| 国产精品免费观看| 日本免费在线观看| 国产免费人成视频在线播放播| 亚洲熟妇AV日韩熟妇在线| 亚洲视频中文字幕在线| 国产亚洲精品一品区99热|