public void pdf2Image(File sourceFile, File destFile) { if (sourceFile.exists()) { try { PDDocument doc = PDDocument.load(sourceFile); PDFRenderer renderer = new PDFRenderer(doc); int pageCount = doc.getNumberOfPages(); BufferedImage imageNew = null; for (int i = 0; i < pageCount; i++) { BufferedImage image = renderer.renderImageWithDPI(i, 284); int width = image.getWidth(); int height = image.getHeight(); if (imageNew == null) { imageNew = new BufferedImage(width, (height + SEPARATE_DISTANCE) * pageCount, BufferedImage.TYPE_INT_RGB); } int[] imageRgbArray = new int[width * height]; imageRgbArray = image.getRGB(0, 0, width, height, imageRgbArray, 0, width); imageNew.setRGB(0, (height + SEPARATE_DISTANCE) * i, width, height, imageRgbArray, 0, width);// SEPARATE_DISTANCE表示兩張圖片的間隔距離 } ImageIO.write(imageNew, "PNG", destFile); } catch (IOException e) { e.printStackTrace(); } } }