利用Java应用程序中读取PDF中文本或者图片,我们可以借助第三方PDF控件,本文所使用的控件是免费Java PDF组件Free Spire.PDF for JAVA,代码如下:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
/**
* @author :阳光
* @date :Created in 2021/11/22 0022 17:34
* @description:解析带图片的pdf
* @modified By:
* @version: 1.o$
*/
public class PdfImgUtils {
public static void main(String[] args) throws IOException {
String file = "F:\\文档\\test.pdf";
extractTextandImg(file);
}
public static void extractTextandImg(String file) throws IOException {
// 创建PdfDocument对象
PdfDocument doc = new PdfDocument();
// 加载PDF文档
doc.loadFromFile(file);
// 定义一个int型变量
int index = 0;
// 遍历PDF中的页
for (PdfPageBase page : (Iterable<PdfPageBase>) doc.getPages()) {
// 使用extractImages方法获取指定页上图片
for (BufferedImage image : page.extractImages()) {
// 指定输出文件路径及名称
File output = new File("d:\\pdf\\" + String.format("Image_%d.png", index++));
// 将图片保存为PNG格式文件
ImageIO.write(image, "PNG", output);
}
}
for(int i= 0;i<doc.getPages().getCount();i++){
PdfPageBase page = doc.getPages().get(i);
System.out.println(page.extractText(true));
}
}
}