>> I am trying to write an NSView subclass to render a multi-page printout. 
>> What I would like is to use the page/paper size in calculating the 
>> dimensions of each page; for example, if the printout is made up of N rows 
>> of items, each item rendering as 60-point-tall row.
>> 
>> So, assuming 10 rows of items, the rendered view needs to be 10 * 60 pt 
>> high, and the page boundaries need to be set appropriately - if the usable 
>> paper area is 120 points high, then we need 5 pages of 2 rows, and if the 
>> user specifies much larger paper, e.g. 240 points, then we need 3 pages, 
>> each with up to 4 rows (the last page only having two rows).
>> 
>> How do I implement knowsPageRange, rectForPage, and locationOfPrintRect to 
>> achieve this?
>> 
>> I have tried implementing these methods to set up arbitrary rectangles for 
>> each page, and I find that the rendering I do in drawRect is scaled weirdly 
>> in the printout, with a huge (half the page) right margin and an even huger 
>> (more than half the page, proportional to the total number of pages) top 
>> margin.
I found my problem - I needed to set the pagination options on the NSPrintInfo 
appropriately, otherwise the automatic pagination interacts with my custom 
pagination. The trick was to implement print: myself and set up the NSPrintInfo 
and the current NSPrintOperation, so the rest of my view code could 
successfully query the page size, margins etc.

   NSPrintOperation* po = [NSPrintOperation printOperationWithView:self];
   NSPrintInfo *pInfo = [po printInfo];
   [NSPrintOperation setCurrentOperation:po];
   [pInfo setHorizontalPagination:NSFitPagination];
   [pInfo setVerticalPagination:NSClipPagination];

>> Is there sample code or a tutorial somewhere that explains how to set up 
>> custom page coordinates? I have read through "Printing Programming Topics 
>> for Cocoa", and it seems I'm missing something critical here.
> That is pretty much it other than sample code. Are you aware of the sample 
> code listings that come with each class reference document? Other than that, 
> the only difficult-to-find documentation that is a real hiney-biter is that 
> text is always rendered in a flipped coordinate system.
Good point, I see there are a range of Sketch related and other samples listed 
in the links for NSPrintOperation, NSPrintInfo.

I should mention that the documentation changed a lot over the weekend, the new 
Printing Programming Topics for Cocoa is slightly more helpful!

thanks for the advice
Rua HM.

--
http://cartoonbeats.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to