[英]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.