pla*_*hen 3 printing macos cocoa
我想编写一个可以从 URL 打印页面的小实用程序,该 URL 将提供一个标准文件(如 pdf 或 jpg 图片),我只想从我的 cocoa 应用程序中打印此文件而不显示任何对话框,那可能吗?除了告诉我用文件构建视图然后打印此视图之外,我在文档中找不到任何有关此内容的内容,但这真的有必要吗?
任何帮助表示赞赏。
谢谢,菲利普
您无需显示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];
Run Code Online (Sandbox Code Playgroud)
对于PDF文档使用PDFView(添加Quartz框架)。
您也可以考虑使用WebView(添加WebKit框架)。
WebView 支持多种格式,并使格式化变得轻而易举 (HTML)。
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |