gpt4 book ai didi

macos - Mac OS X : Print directly from file/URL?

转载 作者:行者123 更新时间:2023-12-03 16:19:42 26 4
gpt4 key购买 nike

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

感谢任何帮助。

谢谢,菲利普

最佳答案

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

关于macos - Mac OS X : Print directly from file/URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11139386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com