我正在嘗試讓4x6卡片在Cocoa(故事卡片)中打印。我有一個視圖,我把數據放在哪裏,但是當我打印它時,打印方向正確,只能在8x11的紙上打印(換句話說,它在信紙尺寸紙上打印的方向正確,原點位於左上角 - 左下角您在橫向模式下保持輸出)。當一張4x5卡通過打印機時,它看起來只是打印輸出的最後一位(換句話說,如果4x6卡疊加在字母紙上,看起來在中間右側居中,如果看着紙在橫向模式下,打印機似乎是對字母進行成像,而不是4x6,它必須與我如何配置NSPrintInfo對象有關......但對於我來說,我無法想象它, ?已經試過在幾個不同的打印機,我一直得到了相同的結果在OSX(可可)中打印4「x6」卡片
任何想法
,做印刷的代碼如下所示:
- (IBAction)printCard:(id)sender
{
int i;
for (i=0; i<[storyCards count]; i++)
{
StoryCard * card = [storyCards objectAtIndex:i];
NSPrintInfo *printInfo = [[NSPrintInfo sharedPrintInfo] copy];
[printInfo setPaperSize:NSMakeSize(4*72, 6*72)];
[printInfo setOrientation:NSLandscapeOrientation];
[printInfo setHorizontalPagination:NSFitPagination];
[printInfo setVerticalPagination:NSFitPagination];
[printInfo setLeftMargin:10.0];
[printInfo setRightMargin:10.0];
[printInfo setTopMargin:10.0];
[printInfo setBottomMargin:10.0];
StoryCardView *view = [[StoryCardView alloc] initWithFrame:[printInfo imageablePageBounds]];
[view setStoryCard:card];
NSPrintOperation *printOp = [NSPrintOperation printOperationWithView:view printInfo:printInfo];
[printOp runOperation];
[view release];
}
}
大的艾倫·希爾加斯書呆子牧場的名氣發佈了一個應用程序,而在8x11紙(可用源代碼)生成較小的頁回來。不是您的具體問題的答案,但也許會激發您:http://weblog.bignerdranch.com/?p=23 – 2009-12-09 00:33:10
不要忘記發佈這些NSPrintInfo對象。此外,你應該使用'NSUInteger'作爲數組索引(或者,更好的是,直接在數組上循環)。 – 2009-12-09 01:16:09
如果您在打印機中放入8.5 x 11的紙張,那麼會出現這種情況。你需要更徹底地解釋你的實際問題。 – 2009-12-12 00:48:08