PDF转图片
依赖
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.12</version>
</dependency>
转换代码
public static void PdfToImages(String pdfPath, String imageDir) {
PDDocument document = null;
try {
document = PDDocument.load(new File(pdfPath));
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page) {
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 144);
Thumbnails.of(bim)
.outputQuality(1)
.size(bim.getWidth(), bim.getHeight())
.toFile(imageDir+File.separator+"image" + page + ".jpg");
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally {
if(document !=null){
try {
document.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
图片转PDF
依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.3</version>
</dependency>
代码
public static File Pdf(List<String> imageUrllist, String outputPdfFilePath) {
Document doc = new Document(new RectangleReadOnly(283F, 283F), 0, 0, 0, 0);
try {
PdfWriter.getInstance(doc, new FileOutputStream(outputPdfFilePath));
doc.open();
for (int i = 0; i < imageUrllist.size(); i++) {
doc.newPage();
Image png1 = Image.getInstance(imageUrllist.get(i));
float heigth = png1.getHeight();
float width = png1.getWidth();
png1.setAlignment(Image.MIDDLE);
int percent = getPercent(heigth, width);
png1.scalePercent(percent);
doc.add(png1);
}
doc.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
File outputPdfFile = new File(outputPdfFilePath);
if (!outputPdfFile .exists()) {
return null;
}
return outputPdfFile ;
}
public static int getPercent(float h, float w) {
int p = 0;
float p2 = 0.0f;
if (h > w) {
p2 = 283 / h * 100;
} else {
p2 = 283 / w * 100;
}
p = Math.round(p2);
return p;
}