为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 IText 获取可移植合集 PDF 的页数或使用 Java 获取任何函数

如何使用 IText 获取可移植合集 PDF 的页数或使用 Java 获取任何函数

杨__羊羊 2022-09-14 15:59:41
PdfReader reader = new PdfReader(pdfFile, new byte[0]); pages = reader.getNumberOfPages();假设便携式集合中有两个pdf(每个PDF包含2页)。当我尝试获取页面数时,它只返回1。我认为它正在考虑便携式收藏文件的封面。有没有办法获得便携式整理的页数?我使用的是 Java 11 和 IText 5.5 版本。
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

我找到了解决方案,但我认为没有必要检查以下内容,解决方案不是获取总pdf页码的有效方法。


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;

        }


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 219 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号