>> 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