| Summary: | PDF Report Generation Consumes Memory per Page | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Scott Hamilton <scott.hamilton> |
| Component: | BIRT | Assignee: | Birt-ReportEngine-inbox <Birt-ReportEngine-inbox> |
| Status: | VERIFIED FIXED | QA Contact: | Xiaoying Gu <bluesoldier> |
| Severity: | major | ||
| Priority: | P3 | CC: | bluesoldier, hustlg |
| Version: | 2.6.1 | ||
| Target Milestone: | 3.7.0 RC2 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | Obsolete | ||
|
Description
Scott Hamilton
Some more thoughts on this... I don't know if the cross reference data is strictly necessary, but if it is, the TreeSet that it is stored in (com.lowagie.text.pdf.PdfWriter.PdfBody.xrefs) might be converted to a more memory-efficient structure, e.g. something that overflows to disk after a certain amount of elements have been added to the set. I understand the efficiency of such an operation might be horribly slow by comparison, especially if the ordering of the elements in the set are not consistent with the order in which they are added (don't know - didn't debug it). Another idea would be for the cross reference table to be built as elements are added to it, streaming that out to a temporary file, and then just appended to the PDF once done. Again if the order of the elements is an issue this could be inefficient. I also understand this is getting into a change to iText itself - assuming the community reaches a viable solution to suggest/contribute back to them, perhaps that is the way to resolve this bug. fixed. Add PDF render option IPDFRenderOption.PDF_PAGE_LIMIT, user can use this render option to limit PDF page count. Can you point me to where in the CVS repository this fix might be so I can back-port it for our version? Thanks! Verified in birt report engine 3.7.0.v20110520-0630 that PDF render option IPDFRenderOption.PDF_PAGE_LIMIT works. |