- 引入pom文件
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>8.0.3</version>
<type>pom</type>
</dependency>
- Demo
package pngToPdf;
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
import java.io.File;
import java.io.FileOutputStream;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
public class ImagesToPdfConverter {
public static void main(String[] args) {
try {
String imagePath = "C:\\Users\\MES\\Desktop\\test1\\image";
String pdfPath = "C:\\Users\\MES\\Desktop\\test1\\1.pdf";
File pdfFile = new File(pdfPath);
if (!pdfFile.exists()) {
pdfFile.createNewFile();
}
FileOutputStream fos = new FileOutputStream(pdfFile);
PdfWriter writer = new PdfWriter(fos);
PdfDocument pdfDoc = new PdfDocument(writer);
Document doc = new Document(pdfDoc);
File inputDir = new File(imagePath);
List<File> images = new ArrayList<>();
for (File file : inputDir.listFiles()) {
if (file.isFile() && isImageFile(file)) {
images.add(file);
}
}
images.sort((f1, f2) -> f1.getName().compareToIgnoreCase(f2.getName()));
for (File image : images) {
byte[] imageData = Files.readAllBytes(image.toPath());
ImageData imageDataObj = ImageDataFactory.create(imageData);
Image img = new Image(imageDataObj);
doc.add(img);
}
doc.close();
fos.flush();
fos.close();
System.out.println("PDF文件已成功生成!");
} catch (Exception e) {
e.printStackTrace();
}
}
private static boolean isImageFile(File file) {
String fileName = file.getName().toLowerCase();
String[] supportedExtensions = new String[]{".jpg", ".jpeg", ".png", ".gif", ".bmp"};
for (String extension : supportedExtensions) {
if (fileName.endsWith(extension)) {
return true;
}
}
return false;
}
}