3

我想编写一个可以从 URL 打印页面的小实用程序,该 URL 将提供标准文件(如 pdf 或 jpg 图片),我只想从我的可可应用程序中打印它而不显示任何对话框,那可能吗?除了告诉我用文件构建视图然后打印该视图之外,我在文档中找不到任何关于此的内容,但这真的有必要吗?

任何帮助表示赞赏。

谢谢,菲利普

4

1 回答 1

4

您无需显示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)。

于 2012-06-21T18:50:18.670 回答