spire.office免费版读取pdf,是获取不到10页以后的数据的,特研究出一种方式来解决:《拆分法》!
- 将pdf按照每10页拆分计算份数
PdfDocument pdf = new PdfDocument(multipartFile.getBytes());
int num = pdf.getPages().getCount();//获取页数
//由于spire.office只可以获取前10页的pdf内容,所以拆分pdf
int copies = num / 10;//份数
int remainder = num % 10;//取余
if (remainder > 0) {
copies++;//取余大于0,份数加1
}
- 循环拆分的pdf,并做相应的业务处理
for (int j = 0; j < copies; j++) {
PdfDocument doc = new PdfDocument();
int start = j * 10;//拆分读取的起始页
int end = (start + 9) > num - 1 ? num - 1 : start + 9;//结尾页
doc.insertPageRange(pdf, start, end);//将读取到的数据初始话到新的PdfDocument 里面
//创建一个PdfTableExtractor实例
PdfTableExtractor extractor = new PdfTableExtractor(doc);
for (int i = 0; i < 10; i++) {//将拆分出的新的PdfDocument 循环每一页做业务处理
if (j == (copies - 1) && i == remainder) {
break;
}
//业务代码(可以提取文字、表格、图片等做相应的业务处理)
}
doc.close();
}