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