> On Aug. 6, 2017, 3:17 p.m., Albert Astals Cid wrote:
> > Rasterizing usually makes stuff look quite bad (because the wrong 
> > resolution is chosen) , have you tried printing text or things with sharp 
> > lines?
> 
> Oliver Sander wrote:
>     Yes I tried that, and it looks very good.  It looks so good I wasn't even 
> able to tell that it was rasterized before printing.  The resolution chosen 
> by the code adapts to the printer
>     
>          QImage img = pp->renderToImage(  printer.physicalDpiX(), 
> printer.physicalDpiY() );
>     
>     and I guess it must be pretty large when printing to an actual printer.
> 
> Albert Astals Cid wrote:
>     So we will kill cheap printers/computers by using lots of memory? Can you 
> try to see how much memory is used printing an A4 page? Also make sure that 
> printing N pages doesn't need N times the memory (i guess using heaptrack or 
> similar)
> 
> Oliver Sander wrote:
>     Quick first results: printer.physicalDpiX() returns a value of 1200, both 
> for printing to my office printer and for printing to a file.  An A4 printout 
> results in a 9921 x 14032 bitmap; the corresponding file size is 804 KB 
> (greyscale).  Testing the actual memory consumption will take me a bit more 
> time.
>     
>     I don't actually care about the exact resolution.  If you say "bah, just 
> hard-code 72dpi there" that's fine with me.
> 
> Albert Astals Cid wrote:
>     >  9921 x 14032 bitmap
>     
>     Does that mean that you need 9921x14032x32 bits in memory? That's around 
> 530 MB, right? I guess it's not horrible in todays big scheme of things if it 
> doesn't get multiplied by the number of pages.

I now tried to measure the heap consumptions using valgrind/massif.  I printed 
to files exclusively, to save some trees.

If I read the massif output correctly, the new code needs about 1GB of heap 
space to print A4 pages, and that is independent of the number of pages.

On the other hand, printing an A0-size poster fails with the friendly message 
"Bogus memory allocation size".  Not really surprising: that would need an 
enormous amount of memory.


- Oliver


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/130218/#review103569
-----------------------------------------------------------


On Aug. 4, 2017, 8:20 p.m., Oliver Sander wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/130218/
> -----------------------------------------------------------
> 
> (Updated Aug. 4, 2017, 8:20 p.m.)
> 
> 
> Review request for Okular.
> 
> 
> Repository: okular
> 
> 
> Description
> -------
> 
> When the users chooses to print with rasterization and annotations, it is 
> easy to print directly to a QPrinter, rather than converting to PostScript 
> and then using CUPS tools.  The code for it was already there, but it was 
> hidden behind an #ifdef Q_OS_WIN. This patch enables it for all plattforms.  
> If nothing else, it will make an interesting debugging tool, because it 
> allows to bypass the postscript & cups toolchain from the GUI. This may allow 
> to track down some of the numerous my-printer-settings-are-getting-ignored 
> bugs.
>     
> Incidentally, this patch does fix at least one bug for me: Without it, my 
> printer will happily ignore the 'print in grayscale' button.  With the patch, 
> that button is suddenly honoured.
> 
> This patch is a part of https://git.reviewboard.kde.org/r/130055/ .  I post 
> it here separately because I am not sure anymore whether the other stuff in 
> that larger patch is a good idea.
> 
> 
> Diffs
> -----
> 
>   generators/poppler/generator_pdf.cpp 42ccb3a26 
> 
> Diff: https://git.reviewboard.kde.org/r/130218/diff/
> 
> 
> Testing
> -------
> 
> Printed a few test sheets, to a printer and a file.
> 
> 
> Thanks,
> 
> Oliver Sander
> 
>

Reply via email to