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" <[EMAIL PROTECTED]> To: <itext-questions@lists.sourceforge.net> 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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/itext-questions Buy the iText book: http://itext.ugent.be/itext-in-action/