簡體   English   中英

PDFBox:使用非常大的PDF。

[英]PDFBox: working with very large PDFs.

我正在使用一些非常大的PDF,一些超過7GB。 PDF包含多達20,000頁和許多整頁彩色圖像。 我想使用PDFBox來處理PDF,但由於我在嘗試打開PDF時出現OutOfMemoryError的大小。

我正在使用版本pdfbox-app-1.6.0,在Windows 7上使用Intellij,java 6。

首先,我嘗試編寫一個簡單的程序,只是在PDDocument中打開PDF並將每個頁面復制到另一個PDDocument: http ://ideone.com/arKhB

接下來我嘗試使用PDFBox CopyDoc示例。

兩個例子都沒有內存。

我假設這是因為PDFBox試圖將整個文檔讀入內存。 有沒有辦法讓它一次只打開1頁? 我知道處理速度會慢一些,但目前我無法處理任何事情。

在2.0。*版本中,打開PDF如下:

PDDocument doc = PDDocument.load(file, MemoryUsageSetting.setupTempFileOnly());

這將設置緩沖內存使用僅使用大小不受限制的臨時文件(無主內存)。

更新17.4.2018: 常見問題解答中描述了更多節省內存的技巧。 尚未描述但有效,因為2.0.9在進行渲染時使用PDFRenderer.setSubsamplingAllowed(true)進行子采樣(跳過像素行/行)。 這為擁有巨大圖像文件的PDF文件節省了空間。

暫無
暫無

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

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