问题标签 [nsprintoperation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
460 浏览

swift - 以正确的尺寸打印 NSImage

我正在尝试打印 NSImage,但无法使其尺寸合适。我希望 NSImage 在任何足够大的纸张上打印为 4"x6" 照片。这是我现在拥有的代码。

0 投票
0 回答
164 浏览

pdf - 将 NSView 打印到 PDF 无法按预期工作

我用 NSPrintOperation 方法在 PDF 中转换了一个 NSView (PDFContentView:NSView)。此 NSView 包含 2 个子视图(绘图:NSView)。这个子视图是使用 drawRect 方法绘制的。

当我在 NSWindow 中显示我的视图时,预期的结果是正确的:

在此处输入图像描述

但在 PDF 文件中,第二个子视图似乎包含在第一个子视图中:

在此处输入图像描述

这似乎是层的问题,但是当我将 setWantsLayer: 更改为 NO 时,结果相同。

注意:我找到了建议将通过 drawRect 方法绘制的子视图转换为 NSImage 然后将其添加到视图的答案。但是这个解决方案不适合我的问题,因为我需要保持在不像素化子视图的情况下放大 pdf 的可能性。

谢谢您的帮助。

这是我的代码:

将我的 pdfContentView 转换为 PDF 的方法:

PDFContentView.m:

绘图.m:

0 投票
0 回答
119 浏览

swift - Swift 无法从 NSView 打印“CGContextGetCTM:无效上下文 0x0”

我目前正在制作一个 macOS 应用程序,并且正在尝试支持打印。我添加了 NSBox 来表示我想在 NSScrollView 中打印的页面,所以层次结构看起来像这样

打印预览

在 ViewController 中,当用户单击打印时,我运行以下代码

在 NSDocumentView 子类中,我实现了

当我跑步时,我看到所有看起来都正确的打印纸。

打印表

但是当我最终确认打印时,我在控制台中得到了这些错误,还有一张白纸。

我不知道这意味着什么,因为所有内容都在 NSScrollView 中正确显示,甚至是打印预览。我试图缩小问题的范围,我尝试在 NSScrollView 中只使用一个 NSBox 制作一个空白项目,但我遇到了同样的问题。我尝试更改在 rectForPage() 中返回的 NSRect bering 的大小,但没有任何效果。我没主意了。

谢谢大家。

0 投票
2 回答
365 浏览

macos - NSPrintOperation 上下文总是 nil,导致崩溃。打印时如何设置上下文?

我有一个要打印的自定义 NSView。在使用 NSView 和打印选项进行设置后,我进行了以下调用:

“theContext”始终为零。如果我忽略这一点,当我拨打这个电话时:

我得到一个例外,说:“[General] lockFocus/unlockFocus 发送到不在窗口中的视图”

如果我将其注释掉,我会收到大约十亿条消息:“CGContextDrawPath:无效上下文 0x0。如果您想查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。” 打开回溯只会显示我所有的绘图都是导致它的原因。

如果我查看视图的“DrawRect:”函数中的图形上下文:

graphicsContext 和 context 都为零。

那么,我该怎么做才能获得有效的打印上下文?我看到有一个 NSPrintOperation 方法 createContext,但文档说不要直接调用它,如果我忽略它,它没有帮助,并且向打印机拍摄大约八个空作业。

最新版本的代码,仍然导致空上下文:

0 投票
0 回答
28 浏览

macos - NSPrintOperation 在沙盒 Mac 应用程序中旋转色轮几秒钟

以下对 NSPrintOperation 的简单调用开始运行非常缓慢并旋转色轮:

使用以下登录控制台:

看起来它是在升级到 macOS 10.14 后开始的。它仅在启用沙盒时发生。检查打印权限。其他沙盒应用程序,如 Preview 和 TextEdit 似乎不受此影响,并快速开始打印对话框。有什么想法可以解决这个问题吗?

0 投票
0 回答
74 浏览

macos - 打印自定义 NSTextView

尝试从自定义 NSTextView(使用 TextKit 组件)设置打印。这就是我现在使用第二个视图所做的事情:

所以当 Print Dialog 出现时,它显示了正确的带有属性和布局的文本,但是原来MyTextView的突然是空的,就好像文本从视图移动到打印视图一样。

我在这里想念什么?

0 投票
1 回答
341 浏览

objective-c - 来自 WKWebView 的 MacOS PDF/打印质量很差

我一直在使用似乎是在 MacOS 上生成打印件/PDF 的标准方式,方法是使用 aWebView生成内容并使用以下内容打印/保存为 PDF。

这很好用,但是WebView自 10.14 以来已被弃用,并且随着 10.15 的到来,是时候转移到WKWebView. WKWebView将' 的视图传递给NSPrintOperation总是会给出一个空白页,此处已在其他几个问题中报告了该空白页。

我使用以下代码完成了所有工作:

.

它生成一个图像快照,WKWebView然后使用一个NSImageView传递给NSPrintOperation. 问题是 PDF/Print 的质量不如旧方法。

老的 新的

如何从 WKWebView 中获得与旧 WebView 相同的质量?

0 投票
1 回答
149 浏览

swift - 将“PageSetupAccessory”添加到 PDFDocument 的 PrintPanel

我有一个显示 的应用程序PDFView,我希望它从视图中打印 PDF 文件。此外,我希望打印面板显示页面设置附件(即纸张大小、方向和比例设置,如预览中一样,显示为选项下拉列表的一个面板)。

目前,我错误地打印了PDFView,而不是 PDF 文档本身。这只会给我一页,并在打印输出中包含滚动条!我看不到如何init引用NSPrintOperationaPDFDocument而不是PDFView.

这是我的代码,它有效,但不是我想要的。我想我必须用定义面板和信息的类似代码覆盖printDocumentprintOperation函数。NSDocument

0 投票
1 回答
131 浏览

objective-c - 如何在多页 NSPrintOperation 中更改页面方向?

假设我有一个三页的报告要打印出来,第一页是纵向的,第二页是横向的,第三页是纵向的。

我已经将一个特殊的 NSView 子类化为我的打印操作,但我得到的是三页,全部为纵向,切断横向。我已经能够通过将每个页面分成单独的打印作业来解决它,但这是不可接受的,因为它忽略了

从第一页调用(例如,如果他们从该对话框中选择了“在预览中打开 PDF”,我希望将这三个页面合并为一个作业,在预览中作为 PDF 打开。)

我需要在呈现 NSView 的打印机版本的代码中做什么,以强制 NSPrintOperation 更改方向?

0 投票
0 回答
93 浏览

swift - 如何取消 NSPrintOperation

是否可以取消已经运行的 NSPrintOperation?我有以下代码:

我看到有一个 .cancel 的 NSPrintInfo jobDisposition,但我不知道如何将其应用于正在运行的现有任务。您可以在 macOS 的打印机作业队列中执行此操作,但我找不到在代码中执行此操作的方法。

谢谢。