import com.sxh.common.utils.uuid.UUID;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
import org.apache.pdfbox.cos.COSName;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.util.List;
import java.io.File;
import java.util.ArrayList;
public class ExtractImagesFromPDF {
public static void main(String[] args) throws IOException{
try (PDDocument document = PDDocument.load(new File("C:\\Users\\86181\\Desktop\\123.pdf"))) {
List<PDImageXObject> images = new ArrayList<>();
for (PDPage page : document.getPages()) {
for (COSName name : page.getResources().getXObjectNames()) {
PDXObject xobj = page.getResources().getXObject(name);
if (xobj instanceof PDImageXObject) {
images.add((PDImageXObject) xobj);
}
}
}
for (PDImageXObject image : images) {
//image.getImage().
File outputFile = new File("D:/sxh/" + UUID.randomUUID().toString() + ".png");
ImageIO.write(image.getImage(), "png", outputFile);
//image.write2file(new File("output/" + image.getName() + ".png")); // 将图片保存为PNG格式
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>