亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

NullPointer獲取頁面信息時的異常

NullPointer獲取頁面信息時的異常

一只名叫tom的貓 2022-08-03 16:25:52
我需要檢測 PDF 文檔的頁面方向。這樣做,我正在嘗試獲取單個頁面的頁面大?。簆dfGen = createPdf.makePdf("doc.pdf");document = pdfGen.getDocument();document.setMargins(80, 80, 80, 80);writer = pdfGen.getWriter();document.add(new Paragraph("some content"));document.add(new AreaBreak(PageSize.A4.rotate()));document.add(new Paragraph("more content"));document.add(new AreaBreak(PageSize.A4));document.add(new Paragraph("even more content"));Rectangle rect = document.getPdfDocument().getPage(1).getPageSizeWithRotation(); // e.g. the 1st pagedocument.close();writer.close();但我得到的只是這行: .NullPointerExceptionRectangle rect = document.getPdfDocument().getPage(1).getPageSizeWithRotation()java.lang.NullPointerException    at com.itextpdf.kernel.pdf.PdfDictionary.get(PdfDictionary.java:456)    at com.itextpdf.kernel.pdf.PdfDictionary.getAsArray(PdfDictionary.java:156)    at com.itextpdf.kernel.pdf.PdfPage.getMediaBox(PdfPage.java:516)    at com.itextpdf.kernel.pdf.PdfPage.getPageSize(PdfPage.java:125)    at com.itextpdf.kernel.pdf.PdfPage.getPageSizeWithRotation(PdfPage.java:134)    at com.myPackage.MyClass.myFunc(MyClass.java:15)// ...
查看完整描述

2 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

這是因為啟用了立即刷新模式。

要么事先保存所需的信息,要么使用三個參數構造函數來創建文檔:

Document document = new Document(pdfDoc, PageSize.A4, true);

正如文檔中所述:如果為真,請盡快將頁面和頁面相關說明寫入{@link PdfDocument}。這樣做是為了減少內存使用量。immediateFlush


查看完整回答
反對 回復 2022-08-03
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

以下情況之一為空:

  • document

  • document.getPdfDocument()

  • document.getPdfDocument().getPage(1)

我猜這可能是最后一個,但你應該把它們都檢查出來。

您可能還會發現使用getFirstPage()方法意味著如果第一頁是0或1索引,您不會感到困惑。


查看完整回答
反對 回復 2022-08-03
  • 2 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號