@Test
public void demo7 () throws Exception {
String pathpdf = "C:\\Users\\lenovo\\Desktop\\文档.pdf";
String pathjpg = "C:\\Users\\lenovo\\Desktop\\文档.jpg";
File file = new File(pathpdf);
if(file.exists()) {
PDDocument dest = null;
//得到输入流
InputStream stream = new FileInputStream(file);
// 加载解析PDF文件
dest = PDDocument.load(stream);
PDFRenderer pdfRenderer = new PDFRenderer(dest);
PDPageTree pages = dest.getPages();
//获得PDF总页数,方便下边生成图片
int pageCount = pages.getCount();
BufferedImage[] imageArrery = new BufferedImage[pageCount];
//图片上下排布,所有的图片加起来就是,总图片高度
int nHeight = 0;
//图片宽度
int mWidth = 0;
int[][] ImageArrays = new int[pageCount][];
for (int i = 0; i < pageCount; i++) {
BufferedImage bim = pdfRenderer.renderImageWithDPI(i, 200);
imageArrery[i] = bim;
mWidth = bim.getWidth();
nHeight += bim.getHeight();
int width = imageArrery[i].getWidth();
int height = imageArrery[i].getHeight();
// 从图片中读取RGB 像素
ImageArrays[i] = new int[width * height];
ImageArrays[i] = imageArrery[i].getRGB(0, 0, width, height, ImageArrays[i], 0, width);
}
int mHeight = 0;
BufferedImage bgmImage = new BufferedImage(mWidth, nHeight, BufferedImage.TYPE_INT_RGB);
for (int i = 0; i < ImageArrays.length; i++) {
bgmImage.setRGB(0, mHeight, mWidth, imageArrery[i].getHeight(),ImageArrays[i], 0, mWidth);
mHeight += imageArrery[i].getHeight();
}
ImageIO.write(bgmImage, "jpg", new File(pathjpg));
stream.close();
}
}