[ 
https://issues.apache.org/jira/browse/PDFBOX-5217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17364669#comment-17364669
 ] 

lanshiqin commented on PDFBOX-5217:
-----------------------------------

One of Adobe's PDF conversion tools is more memory efficient, but it is a 
Windows desktop application,and my application needs to run on a Linux server, 
so I need the PDFBox library. Is there any way to further optimize the PDF 
library to reduce the memory?

> Rendering takes up too much memory, easy OOM
> --------------------------------------------
>
>                 Key: PDFBOX-5217
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5217
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Rendering
>    Affects Versions: 2.0.24, 3.0.0 PDFBox
>         Environment: Oracle JDK 1.8.0_291-b10
> MacOS BigSur  (CPU i5, RAM8GB)
> Windows 10 (CPU  i7  2.80GHz, RAM 16GB)
>            Reporter: lanshiqin
>            Priority: Major
>
> Conversion of a 20MB PDF file to an image resource consumes more than 8GB of 
> memory and takes 5 minutes. That's an intolerable fact.
> Debug found that the memory soared when the file stream was finally read.
> This is my code:
>  
> {code:java}
> try(InputStream in = new URL(pdfFileUrl).openStream();
>     PDDocument document = PDDocument.load(in, 
> MemoryUsageSetting.setupTempFileOnly())){
>     document.setResourceCache(null);
>     PDFRenderer renderer = new PDFRenderer(document);
>     List<String> imgUrlList = Lists.newArrayList();
>     for (int i = 0; i < document.getNumberOfPages(); i++) {
>         BufferedImage bufferedImage = renderer.renderImageWithDPI(i, DPI);
>         File tempFile = new File(OFFICE_CONVERT_TEMP_DIR + fileName + "_" + 
> i);
>         try {
>             ImageIO.write(bufferedImage, "png", tempFile);
>             imgUrlList.add("upload to media center get url todo "+i);
>         } finally {
>             FileUtils.deleteQuietly(tempFile);
>             bufferedImage.getGraphics().dispose();
>         }
>     }
>     return imgUrlList;
> }
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to