Вопрос по printing, macos, cocoa – Mac OS X: печатать напрямую из файла / URL?

3

Я хочу написать небольшую утилиту, которая может распечатать страницу с URL-адреса, URL-адрес доставит стандартный файл (например, изображение в формате pdf или jpg), и я просто хочу напечатать это из своего приложения для какао, не показывая никакого диалога, это возможно? Я не могу найти в документации ничего об этом, кроме того, что говорит мне создать представление с файлом, а затем распечатать это представление, но действительно ли это необходимо?

Любая помощь приветствуется.

Спасибо, Филипп

Ваш Ответ

1   ответ
3

Вам не нужно показывать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 (добавить Кварцевые рамки).

Вы также можете рассмотреть возможность использованияWebView (добавьте фреймворк WebKit).
WebView поддерживает множество форматов и упрощает форматирование (HTML).

Похожие вопросы