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