如何直接从我的 macOS 应用程序打印显示打印对话框的 PDF 文件?

Posted

技术标签:

【中文标题】如何直接从我的 macOS 应用程序打印显示打印对话框的 PDF 文件?【英文标题】:How to print a PDF file showing the print dialog directly from my macOS application? 【发布时间】:2017-11-24 19:03:41 【问题描述】:

我希望能够显示一个 macOS 打印对话框,以便直接从我的应用程序打印 PDF 文件。有没有办法做到这一点?

以下是一些不能完全满足我需求的解决方案:

我可以使用 AppleScript 请求预览应用程序打开 PDF 文件并显示打印对话框。这非常接近。问题是 用户看到显示在预览窗口中的文档,同时 打印对话框打开。我希望打印对话框是 显示在我的应用程序上或单独显示。

我可以使用各种终端命令来打印 PDF 文件,而无需任何 用户交互。问题是我希望用户能够 与打印对话框交互。

我可以使用AppKit printing API 从我的应用程序中显示打印对话框。问题是我看到实际打印内容的唯一方法是在视图中呈现它。

【问题讨论】:

【参考方案1】:

我不确定我是否理解您在使用 AppKit 打印 API 时遇到的问题。下面的 sn-p 代码应该会给你一个没有文档视图的打印对话框。

    Boolean accepted = true;

    NSPrintInfo *thePrintInfo = [NSPrintInfo sharedPrintInfo];

    [NSApplication sharedApplication];
    NSPrintPanel *printPanel = [NSPrintPanel printPanel];
    accepted = [printPanel runModalWithPrintInfo: thePrintInfo];

【讨论】:

以上是关于如何直接从我的 macOS 应用程序打印显示打印对话框的 PDF 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从我的 json 文件中将某些内容打印到不和谐频道中? - 不和谐.py

如何使用窗口打印功能打印条码标签?

如何使用 SwiftyJSON 从我的 JSON 中获取选定的元素并将其打印在控制台上?

CUPS 打印机未显示在打印机对话框中

如何使 cProfile 仅打印重要功能?

使用 c++ 的代码块我试图从我的类中打印出一个访问器函数。错误表明对成员 get_address 的请求