Instead of using a FileInputStream, use just the file name in the
PdfReader constructor. It shouldn't make a difference but who knows?

Paulo 

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On 
> Behalf Of dhyton
> Sent: Monday, October 08, 2007 3:55 PM
> To: itext-questions@lists.sourceforge.net
> Subject: Re: [iText-questions] Out of memory when 
> concatenating -- I have read the previous threads
> 
> 
> I realize that some memory must be maintained for references for page
> addresses and so on.  Still, in my case my pdf is about 72k 
> (3 pages) and
> the memory is growing by about 80k per PDF iteration. To me that would
> indicate the entire pdf is being held in memory.  I have 
> tested with both
> checking the free memory in runtime and using JProfiler.
> 
> I know the api and forum indicate this is not so, my testing 
> would indicate
> otherwise, and I have to resolve this issue one way or 
> another because this
> issue is critical to our application. 
> 
> 
> 
> Paulo Soares wrote:
> > 
> > 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());
> >>
> >>    }


Aviso Legal:
Esta mensagem é destinada exclusivamente ao destinatário. Pode conter 
informação confidencial ou legalmente protegida. A incorrecta transmissão desta 
mensagem não significa a perca de confidencialidade. Se esta mensagem for 
recebida por engano, por favor envie-a de volta para o remetente e apague-a do 
seu sistema de imediato. É proibido a qualquer pessoa que não o destinatário de 
usar, revelar ou distribuir qualquer parte desta mensagem. 

Disclaimer:
This message is destined exclusively to the intended receiver. It may contain 
confidential or legally protected information. The incorrect transmission of 
this message does not mean the loss of its confidentiality. If this message is 
received by mistake, please send it back to the sender and delete it from your 
system immediately. It is forbidden to any person who is not the intended 
receiver to use, distribute or copy any part of this message.


-------------------------------------------------------------------------
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/

Reply via email to