3
我想編寫一個litte實用程序,它可以從一個URL打印一個頁面,該URL將提供一個標準文件(如pdf或jpg圖片),我只想從我的可可應用程序中打印此信息而不顯示任何信息對話框,這可能嗎?在文檔中我找不到任何關於這個的東西,除了一個事情告訴我用該文件構建一個視圖,然後打印這個視圖,但這真的有必要嗎?Mac OS X:直接從文件/ URL打印?
任何幫助表示讚賞。
感謝, 菲利普
我想編寫一個litte實用程序,它可以從一個URL打印一個頁面,該URL將提供一個標準文件(如pdf或jpg圖片),我只想從我的可可應用程序中打印此信息而不顯示任何信息對話框,這可能嗎?在文檔中我找不到任何關於這個的東西,除了一個事情告訴我用該文件構建一個視圖,然後打印這個視圖,但這真的有必要嗎?Mac OS X:直接從文件/ URL打印?
任何幫助表示讚賞。
感謝, 菲利普
你並不需要顯示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)。