【问题标题】:Mac OS X: Print directly from file/URL?Mac OS X:直接从文件/URL 打印?
【发布时间】:2012-06-21 13:35:08
【问题描述】:

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

任何帮助表示赞赏。

谢谢, 菲利普

【问题讨论】:

    标签: macos cocoa printing


    【解决方案1】:

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

    【讨论】:

    • 我试过这个来打印 Word 文档,它打印空文档:|
    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 2012-06-27
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    相关资源
    最近更新 更多