如何使用IText或使用Java的任何函数获取Portable Collection Pdf的页数 [英] How to get number of pages of Portable Collection Pdf using IText or any function using Java
本文介绍了如何使用IText或使用Java的任何函数获取Portable Collection Pdf的页数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
PdfReader reader = new PdfReader(pdfFile, new byte[0]);
pages = reader.getNumberOfPages();
假设便携式集合中有两个pdf(每个pdf包含2页).当我尝试获取页数时,它仅返回1.我认为它正在考虑便携式收集文档的封面.有什么方法可以获取可移植的页数吗? 我正在使用Java 11和IText 5.5版本.
Suppose there are two pdfs(Each pdf contains 2 pages) inside portable collection. When i try to get number of pages it returns just 1. I think it is considering cover page of the portable collection document. Is there any way to get number of pages of portable colletion ? I am using Java 11 and IText 5.5 version.
推荐答案
我找到了解决方案,但我认为没有必要检查以下内容,解决方案不是获取pdf页总数的有效方法.>
I found solution for this but i think it is unnecessary to check the below things and solution is not a efficient way of getting the total pdf page numbers.
private int getNumberOfPages(PdfReader reader) {
int pages = 0;
PdfObject obj;
for (int i = 1; i <= reader.getXrefSize(); i++) {
obj = reader.getPdfObject(i);
if (obj != null && obj.isStream()) {
PRStream stream = (PRStream)obj;
byte[] b;
try {
b = PdfReader.getStreamBytes(stream);
PdfReader pdfReader = new PdfReader(b);
pages += pdfReader.getNumberOfPages();
} catch(InvalidPdfException e) {
} catch (IOException e) {
}
}
}
if (pages == 0) {
pages = reader.getNumberOfPages();
}
return pages;
}
这篇关于如何使用IText或使用Java的任何函数获取Portable Collection Pdf的页数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文