<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
package com.lcb.lcbtest.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import com.itextpdf.text.Document;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfWriter;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PdfUtil {
public static void creatPDF(String savePath,List<File> files) {
Document doc = new Document();
try {
PdfWriter.getInstance(doc, new FileOutputStream(savePath));
doc.open();
for(int i=0;i<files.size();i++) {
File file = files.get(i);
String fileName = file.getName().toLowerCase();
if(fileName.contains(".png") || fileName.contains(".jpg")
|| fileName.contains(".jpeg")){
Image img = Image.getInstance(file.getAbsolutePath());
float heigth = img.getHeight();
float width = img.getWidth();
int percent=getPercent(heigth, width);
img.setAlignment(Image.MIDDLE);
img.scalePercent(percent);
doc.add(img);
}
}
} catch (Exception e) {
log.error(getStackTrace(e));
}
finally {
doc.close();
}
}
public static int getPercent(float h,float w) {
int p=0;
float p2=0.0f;
p2=530/w*100;
p=Math.round(p2);
return p;
}
public static String getStackTrace(Throwable t) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
try {
t.printStackTrace(pw);
return sw.toString();
} finally {
pw.close();
}
}
public static void main(String[] args) {
List<File> files = new ArrayList<>();
File f1 = new File("D:\test\baidu.png");
files.add(f1);
File f2 = new File("D:\test\test1.jpeg");
files.add(f2);
creatPDF("D:\test\test.pdf",files);
}
}