FROM : Scott Thompson
DATE : Tue Jul 11 23:25:26 2006
On Jul 11, 2006, at 1:59 PM, douglas a. welton wrote:
> I have a custom NSView that "displays" like a photographic contact
> sheet - it prints a collection of images in grid. Within my view's
> -drawRect: method, I use an NSImageCell to do my drawing - for each
> image, I determine where it belongs on the page, then send a -
> drawWithFrame:inView: method to the NSImageCell. I print the view
> by simply sending a -print: message.
>
> The problem I have is related to the size of PDF file I get as a
> result of printing. If I print a contact sheet using the 37 images
> in my test directory (which have a combined size of 6.3 Megabytes),
> then tell the standard NSPrintPanel to save the file as a PDF, I
> get a PDF file that is over 162Mbs...
>
> If I tell the NSPrintPanel to compress my PDF, I get a file of only
> 14 Mbs.
>
> I've looked over the Cocoa Printing documentation and a few entries
> in the archives (most notable "Ridiculously Enormous PDFs and
> Printing"), but I didn't see an obvious (to me) way of telling the
> Mac OS X print architecture to compress/optimize the size of my PDF/
> printing.
>
> Does such an option exist? If so, would someone please send me a
> pointer to it. If not, what other options do I have for making a
> smaller PDF file from my printing?
I imagine that your images on disk are probably compressed (JPEG or
PNG). However, when they are added to the printed stream, they
probably go out as raw images.
If your images are PNG or JPEG, one thing you might try is avoiding
NSImage and using CG directly. Create the CGImage you want to draw
using CGImageCreateWithJPEGDataProvider or
CGImageCreateWithPNGDataProvider and then draw them using
CGContextDrawImage.
(I suppose that even if your image files are not in PNG or JPEG, you
could re-compress the images as PNG or JPEG and try using those)
My hope is that the printing architecture will be clever enough to
pick up the compressed stream from the data source and will spool
that into the PDF.
Scott
DATE : Tue Jul 11 23:25:26 2006
On Jul 11, 2006, at 1:59 PM, douglas a. welton wrote:
> I have a custom NSView that "displays" like a photographic contact
> sheet - it prints a collection of images in grid. Within my view's
> -drawRect: method, I use an NSImageCell to do my drawing - for each
> image, I determine where it belongs on the page, then send a -
> drawWithFrame:inView: method to the NSImageCell. I print the view
> by simply sending a -print: message.
>
> The problem I have is related to the size of PDF file I get as a
> result of printing. If I print a contact sheet using the 37 images
> in my test directory (which have a combined size of 6.3 Megabytes),
> then tell the standard NSPrintPanel to save the file as a PDF, I
> get a PDF file that is over 162Mbs...
>
> If I tell the NSPrintPanel to compress my PDF, I get a file of only
> 14 Mbs.
>
> I've looked over the Cocoa Printing documentation and a few entries
> in the archives (most notable "Ridiculously Enormous PDFs and
> Printing"), but I didn't see an obvious (to me) way of telling the
> Mac OS X print architecture to compress/optimize the size of my PDF/
> printing.
>
> Does such an option exist? If so, would someone please send me a
> pointer to it. If not, what other options do I have for making a
> smaller PDF file from my printing?
I imagine that your images on disk are probably compressed (JPEG or
PNG). However, when they are added to the printed stream, they
probably go out as raw images.
If your images are PNG or JPEG, one thing you might try is avoiding
NSImage and using CG directly. Create the CGImage you want to draw
using CGImageCreateWithJPEGDataProvider or
CGImageCreateWithPNGDataProvider and then draw them using
CGContextDrawImage.
(I suppose that even if your image files are not in PNG or JPEG, you
could re-compress the images as PNG or JPEG and try using those)
My hope is that the printing architecture will be clever enough to
pick up the compressed stream from the data source and will spool
that into the PDF.
Scott
| Related mails | Author | Date |
|---|---|---|
| douglas a. welton | Jul 11, 20:59 | |
| Scott Thompson | Jul 11, 23:25 |






Cocoa mail archive

