-none- 2007-10-05 - By Paulo Soares
Back You'll have to throw more memory at the jvm. More pages require more memory even if all that it's kept in memory is references to the page addresses.
Paulo
-- -- Original Message -- -- From: "dhyton" <dhyton@(protected)> To: <itext-questions@(protected)> Sent: Friday, October 05, 2007 6:36 PM Subject: [iText-questions] Out of memory when concatenating -- I have read the previous threads
> > I am having a problem with running out of memory when concatenating files. > I > did search the issues and have found no solution. Below is my code. The > output steam that is passed into the method for testing is a > FileOutputStream. I am currently using itext 1.3 but I tested and had the > same issue with the latest release. You can see I use a PDFCopy and do not > keep any references to the reader around. > > The heap seems to grow very quickly. > > Can you please help? > Thanks > David > > public static void assembleOnLargePDF(Rectangle pageSize, OutputStream > sos, File jobDir, boolean paper, boolean preview, List<String> > householdIDs) > throws DocumentException, IOException > { > > Runtime runtime = Runtime.getRuntime(); > System.gc(); > > System.out.println("Starting Process " + runtime.freeMemory() + " > of > " + runtime.maxMemory()); > Document allHHDocument = new Document(pageSize, 0, 0, 0, 0); > PdfCopy allHHCopy = new PdfCopy(allHHDocument, sos); > > allHHDocument.open(); > int count = 0; > for(String householdID : householdIDs) > { > System.gc(); > System.out.println("Starting HH " + (count) + " " + > runtime.freeMemory()); > > FileInputStream fileInputStream; > try > { > File file = new File(jobDir, householdID + ".pdf"); > if(file.exists()) fileInputStream = new > FileInputStream(file); > else continue; > } > catch(FileNotFoundException e) > { > continue; > } > PdfReader r = null; > try > { > r = new PdfReader(fileInputStream); > int numberOfPages = r.getNumberOfPages(); > for(int j = 1; j <= numberOfPages; j++) > { > allHHCopy.addPage(allHHCopy.getImportedPage(r, j)); > > } > > allHHCopy.freeReader(r); > > sos.flush(); > } > finally > { > if(r != null) > r.close(); > fileInputStream.close(); > } > System.gc(); > > System.out.println("Ending HH " + (count++) + " " + > runtime.freeMemory()); > } > allHHDocument.close(); > allHHCopy.close(); > System.gc(); > System.out.println("Ending Process " + runtime.freeMemory()); > > }
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ __ ____ ____ ____ ____ ____ ____ ____ ____ ____ iText-questions mailing list iText-questions@(protected) https://lists.sourceforge.net/lists/listinfo/itext-questions Buy the iText book: http://itext.ugent.be/itext-in-action/
|
|