我正在尝试让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