簡體   English   中英

如何使用 IText 或使用 Java 的任何函數獲取便攜式收藏 Pdf 的頁數

[英]How to get number of pages of Portable Collection Pdf using IText or any function using Java

PdfReader reader = new PdfReader(pdfFile, new byte[0]);
pages = reader.getNumberOfPages();

假設便攜式集合中有兩個 pdf(每個 pdf 包含 2 頁)。 當我嘗試獲取頁數時,它只返回 1。我認為它正在考慮便攜式收藏文檔的封面。 有沒有辦法獲得便攜式收藏的頁數? 我使用的是 Java 11 和 IText 5.5 版本。

我找到了解決方案,但我認為沒有必要檢查以下內容,並且解決方案不是獲取總 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;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM