如何使用IText或使用Java的任何函数获取Portable Collection Pdf的页数 [英] How to get number of pages of Portable Collection Pdf using IText or any function using Java

查看:149
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆