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: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
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