Apache OpenOffice (AOO) Bugzilla – Issue 33219
transparent objects needs too much memory on high-res printing
Last modified: 2013-02-07 22:16:56 UTC
This issue is releated to the issue #29483. I use the patched generic PPD by the patch attached to the issue #29483. I tried to print a document with transparent objects with the Image Rendering Resolution set to 2400dpi. The result was that OOo nearly freezed the machine for a long of time and needed more that 1GB of memory to finish the task. The problem would be that OOo want's to have all information in memory and is not able to process the page part by part. I'll attach a document for testing.
Created attachment 17236 [details] More that 1GB of memory was needed to print this document.
cp->ka: I think we do split the image in stripes, isn't it ? please give some details on that.
I'd like to hand this task over to you, Thorsten.
The crucial point here is twofold: - first, that OOo's print engine prepares a whole page in memory (generating a GDIMetaFile for it). - and second, that, although some basic optimizations are there, OOo cannot currently optimize the case of a complex figure with a transparent gradient over plain background. Thus, OOo generates banded bitmaps for the area affected by transparency, and puts all those small band bitmaps into one metafile in memory. One might argue that a plain rectangle needn't be handled as a complex figure (aka metafile), but this is somewhat deeply entrenced in svx's XOutDev (apart from being a nice generic solution, except for the trouble it causes here). To conclude, the way it works today is more or less 'by design', i.e. a conscious tradeoff between speed, application responsiveness, and memory consumption. Because of that, this is clearly a feature request and not a defect. BTW, OOo _does_ optimize transparent printing of bitmaps, thus, replacing the rectangle with a gradient bitmap should actually perform much better (as long as there's nothing _behind_ that object and the white page).
Reset to default bug assignee.