import org.apache.pdfbox.pdmodel.PDDocument import org.apache.pdfbox.pdmodel.PDPage import org.apache.pdfbox.pdmodel.PDPageContentStream import org.apache.pdfbox.pdmodel.common.PDRectangle import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject import org.apache.pdfbox.rendering.PDFRenderer
/**=
* pdf转图片
* @param path
* @return
*/
private Integer pdfToImg(String path){
Integer pageCount = 0
File file = new File(path)
PDDocument doc = null
try {
doc = PDDocument.load(file)
PDFRenderer renderer = new PDFRenderer(doc)
pageCount = doc.getNumberOfPages()
String imgPath = path.replace(".pdf","")
for(int i=0; i<pageCount; i++){
BufferedImage image = renderer.renderImage(i, 0.85f)
ImageIO.write(image,"jpg",new File(imgPath+i+".jpg"))
}
} catch (IOException e) {
}finally{
if(doc!=null){
doc.close()
}
}
file.delete()
return pageCount
}
/**=
* 图片转PDF
* @param savePath
* @param page
*/
private void imgToPdf(String savePath,int page){
PDDocument pdDocument = new PDDocument()
String imgPath = savePath.replaceAll(".pdf","")
for(int i=0;i<page;i++){
File imageFile = new File(imgPath+i+".jpg")
BufferedImage image = ImageIO.read(imageFile)
PDPage pdPage = new PDPage(new PDRectangle(612, 792))
pdDocument.addPage(pdPage)
PDImageXObject pdImageXObject = LosslessFactory.createFromImage(pdDocument, image)
PDPageContentStream contentStream = new PDPageContentStream(pdDocument, pdPage)
contentStream.drawImage(pdImageXObject, 0, 0, 612, 792)
contentStream.close()
imageFile.delete()
}
pdDocument.save(savePath)
pdDocument.close()
}