星期四,晴
任务
进行技术调研,查找一个方法。
对一个大的PDF文件进行处理,主要是图片格式的。
将这个PDF文件根据数据不同进行拆分,然后将拆分好的文件再分类整理成新的PDF文件。
问题
1.分类的依据是什么,根据什么条件对pdf进行处理
2.整合新的pdf
3.进行解析?
结果:
1.使用PDFBox库
可以实现的功能
1. 可以从pdf文件中提取文本信息
提取文字信息
public class ReadPDFExample {
public static void main(String[] args) {
// 创建文件对象
File file = new File("one-more.pdf");
try {
// 创建 PDF 文档对象
PDDocument document = PDDocument.load(file);
// 创建 PDF 文本剥离器
PDFTextStripper stripper = new PDFTextStripper();
// 获取 PDF 文件的全部内容
String text = stripper.getText(document);
// 输出 PDF 文件的全部内容
System.out.println(text);
// 关闭 PDF 文档对象
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
提取图片信息
public class ReadPDFImagesExample {
public static void main(String[] args) {
try {
// 加载PDF文件
PDDocument document = PDDocument.load(new File("one-more-jpg.pdf"));
PDPageTree pageTree = document.getPages();
// 遍历每个页面
for (PDPage page : pageTree) {
int pageNum = pageTree.indexOf(page) + 1;
int count = 1;
System.out.println("Page " + pageNum + ":");
for (COSName xObjectName : page.getResources().getXObjectNames()) {
PDXObject pdxObject = page.getResources().getXObject(xObjectName);
if (pdxObject instanceof PDImageXObject) {
PDImageXObject image = (PDImageXObject) pdxObject;
System.out.println("Found image with width "
+ image.getWidth()
+ "px and height "
+ image.getHeight()
+ "px.");
String fileName = "one-more-" + pageNum + "-" + count + ".jpg";
ImageIO.write(image.getImage(), "jpg", new File(fileName));
count++;
}
}
}
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. 将单个PDF文件拆分成多个文件,或将多个PDF文件合并成一个。
public class split {
public static void main(String[] args) {
File file = new File("C:/Users/DELL/Desktop/测试.pdf");
try {
PDDocument document = PDDocument.load(file);
Splitter spitter = new Splitter();
List<PDDocument> pages = spitter.split(document);
ListIterator<PDDocument> iterator = pages.listIterator();
int i = 1;
while (iterator.hasNext()) {
PDDocument pd = iterator.next();
pd.save("C:/Users/DELL/Desktop/测试" + i++ + ".pdf");
pd.close();
}
System.out.println("Multiple PDF’s created");
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. 将PDF文件另存为图像格式,如PNG或JPEG。
4. 从零开始创建PDF文件,包括嵌入字体和图像。
5. 从PDF表单中提取数据,或填写PDF表单。
6. 验证PDF文件是否符合PDF/A-1b标准。
7. 使用标准的Java打印API打印PDF文件。
8. 对PDF文件进行数字签名。
2.itextpdf
图片转pdf工具
3.Free Spire.PDF for Java 2.0.0
链接 付费,免费的有页数限制,10页之内