Fri Jan 06, 2023 6:25 am
采用PDFBOX进行PDF拆分,然后使用 com.aspose.pdf.Document 进行PDF转图片
PDDocument doc = Loader.loadPDF(new File("D:\\codeGenerator\\documentWhite.pdf"));
// 分割操作
Splitter split = new Splitter();
// 设置从那页开始分割
split.setStartPage(1);
// 设置每个文件多少页
split.setSplitAtPage(1);
// 分割文档
List<PDDocument> docs = split.split(doc);
int i = 1;
// 生成分割文档
for (PDDocument document : docs) {
String fileName = "D:\\codeGenerator\\" + "_Page" + (i - 1) + ".pdf";
String fileName2 = "D:\\codeGenerator\\" + "_Page" + (i - 1) + ".png";
String fileName3 = "D:\\codeGenerator\\" + "_Page1" + (i - 1) + ".png";
File file = new File(fileName);
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
document.save(fos);
i++;
ByteArrayOutputStream out = new ByteArrayOutputStream();
document.save(out);
// BufferedImage image = PdfAsposeUtil.pdfToImage(out, 1);
ByteArrayInputStream sbs = new ByteArrayInputStream(out.toByteArray());
com.aspose.pdf.Document pdf = new com.aspose.pdf.Document(sbs);
GifDevice gifDevice = new GifDevice(new Resolution(300));
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
gifDevice.process(pdf.getPages().get_Item(1), byteArrayOutputStream);
BufferedImage read = ImageIO.read(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
ImageIO.write(read, "jpg", new File(fileName2));
PDFRenderer renderer = new PDFRenderer(document);
BufferedImage image2 = renderer.renderImageWithDPI(0, 300);
File file2 = new File( "D:\\codeGenerator\\" + "_Page2" + (i - 1) + ".png");
ImageIO.write(image2, "jpg", file2);
image2.flush();
document.close();
}