Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » iText »

Re: [iText-questions] Pages extraction : performances issues

Eric Vray

2007-10-05


It works fine.
Thanks, Paulo.

Eric
Date: Thu, 4 Oct 2007 14:51:36 +0100
From: "Paulo Soares" <psoares@consiste.pt>
Subject: Re: [iText-questions] Pages extraction : performances issues
To: "Post all your questions about iText here"
	<itext-questions@lists.sourceforge.net>
Message-ID:
	<2B48A868C102134F88BDCD68033EB6A302F6715A@MAILC.consiste.pt>
Content-Type: text/plain;	charset="us-ascii"

You can set "Document.plainRandomAccess=true" to have the old behavior.

Paulo

  
-----Original Message-----
From: itext-questions-bounces@lists.sourceforge.net 
[mailto:itext-questions-bounces@lists.sourceforge.net] On 
Behalf Of Eric Vray
Sent: Monday, October 01, 2007 1:59 PM
To: iText mailing list
Subject: [iText-questions] Pages extraction : performances issues

Hi all,

I'm using iText (1.4.1) to extract pages from existing PDF files.
I have upgraded to a recent release (2.0.5) and a big slow 
down appeared.

I tried to test each release since 1.4.1 and found the performances
issues began with 1.4.5 (maybe caused by the changes listed in release
notes as "used a MappedByteBuffer instead of a RandomAccessFile" ?)

For example, extracting 1759 pages from a 167Mb/75000 pages PDF takes
40s with iText 1.4.4 and 170s with iText 1.4.5 to 2.0.5 (no 
differences
between 2.0.4 and 2.0.5 in spite of RandowAccessFileOrArray changes)

the test code I used :

    /**
     * @param inf input file
     * @param p1 first page to extract
     * @param p2 last page to extract
     * @param ouf output file
     */
    public void split(File inf,
         int p1,
         int p2,
         File ouf)
    throws Exception {

        FileOutputStream fos = new FileOutputStream(ouf);
        Document doc = new Document();

        // use a RandomAccessFileOrArray to limit memory size
        // during extraction

        PdfReader reader = new PdfReader(
            new RandomAccessFileOrArray(inf.getAbsolutePath()),
            null);

        PdfCopy writer = new PdfCopy(doc, fos);
        document.open();

        for(int pageno=p1; pageno<=p2; pageno++){
            PdfImportedPage page = writer.getImportedPage(
                reader, pageno);
            writer.addPage(page);
        }

        doc.close();
        writer.close();
        fos.close();
    }

Regards,
Eric
    

-------------------------------------------------------------------------
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/
©2008 junlu.com - Jax Systems, LLC, U.S.A.