我想编写一个可以从 URL 打印页面的小实用程序,该 URL 将提供标准文件(如 pdf 或 jpg 图片),我只想从我的可可应用程序中打印它而不显示任何对话框,那可能吗?除了告诉我用文件构建视图然后打印该视图之外,我在文档中找不到任何关于此的内容,但这真的有必要吗?
任何帮助表示赞赏。
谢谢,菲利普
您无需显示NSView
即可打印。
只需以NSView
编程方式创建并将其传递给NSPrintOperation
.
示例代码:
// Get Print Info
NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
// Printing Text
NSRect textRect = NSMakeRect(0,0,100,50);
NSTextView *theTextView = [[NSTextView alloc] initWithFrame:textRect];
[theTextView setString: @"Hello World"];
NSPrintOperation *textPrint = [NSPrintOperation printOperationWithView:theTextView printInfo:printInfo];
[textPrint setCanSpawnSeparateThread:YES];
[textPrint runOperation];
// Printing Picture
NSImage *pic = [[NSImage alloc] initWithContentsOfFile: @"/Users/Anne/Desktop/Sample.png"];
NSRect picRect = NSRectFromCGRect(CGRectMake(0, 0, pic.size.width, pic.size.height));
NSImageView *imageView = [[NSImageView alloc] initWithFrame:picRect];
[imageView setImage:pic];
NSPrintOperation * picPrint = [NSPrintOperation printOperationWithView:imageView printInfo:printInfo];
[picPrint setCanSpawnSeparateThread:YES];
[picPrint runOperation];
对于 PDF 文档使用PDFView
(添加 Quartz 框架)。
您也可以考虑使用WebView
(添加 WebKit 框架)。
WebView 支持多种格式并使格式化变得轻而易举 (HTML)。