问题标签 [printqueue]

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 投票
0 回答
638 浏览

c# - 尝试使用打印机的安全透明方法

我正在用 C# 编写一个允许清除默认打印机队列的应用程序。

为了做到这一点,我有这样一段代码:

我已添加到程序集文件中:

不幸的是,我收到了这个错误:

尝试通过安全透明方法“MS.Internal.PrintWin32Thunk.PrinterDefaults.Dispose(Boolean)”访问安全关键方法“MS.Internal.PrintWin32Thunk.PrinterDefaults.InternalDispose(Boolean)”失败。

该应用程序在我正在开发程序的PC(Win 7,64位)上完美运行,但在目标PC(Win XP,32位)上运行时抛出如上所述的异常。

应用程序使用 4.0 框架。我知道此类问题的一种解决方法是将框架降级到 3.5,但不幸的是,我使用的库需要 4.0 框架。

当我将 PrintQueue 构造函数更改为:

然后我在 Win XP 中得到拒绝访问异常。

我能做些什么来解决这个问题?

在此先感谢您的帮助 :)

0 投票
1 回答
1970 浏览

c# - 在 PrintQueue 中添加作业时出现打印作业异常

使用此代码:

我可以使用某些打印机队列成功打印文件,但不能使用我所有的打印机队列,并且我得到System.PrintJobException--Specified method is not supported(这里的参数PrintTicket是默认的,但是我需要这个重载方法才能改变这个值)。

还会PrintQueue.AddJob(string jobName, string filePath, bool fastCopy)抛出 System.PrintJobException。

但是使用PrintQueue.AddJob(string jobName)而不是PrintQueue.AddJob(string jobName, string filePath, bool fastCopy, PrintTicket printTicket)它不会引发异常,但是无法指定要打印的文件。

是否每个驱动程序都支持 PrintQueue.AddJob()?有什么遗漏吗?

提前非常感谢。

我终于用这个而不是解决了它pq.AddJob()

0 投票
1 回答
3730 浏览

printing - Zebra 标签丢失和乱序

我们正在尝试将一批标签打印到 Zebra 打印机上。但是,有两个问题: - 有时缺少某些标签 - 有时某些标签以错误的顺序出现

Zebra 打印机在 Windows 中设置为文本/通用打印机。我们将带有 ZPL 的临时文件复制到打印机。每个标签都单独复制到打印机(使用 .NET File.CopyTo(...)。有时发送到打印机的标签/文件的数量 > 1000。

由于记录,我们非常确定所有标签都正确复制到打印机队列,并且它们以正确的顺序复制。

有什么建议么?

0 投票
2 回答
1647 浏览

c# - 使用 System.Drawing.Printing 发送文件以打印不起作用

我正在尝试发送要打印的文件,而无需按照此处的几个答案的建议通过 Adob​​e 打开它;相反,我正在使用PrintQueue库(来自System.Drawing.Printing)。

到目前为止我已经完成了什么:

我有正确的PrintQueue引用为 pq:

正如我从 Microsoft库中了解到的那样,它已正确完成,但无法正常工作。有任何想法吗?

编辑:调试代码我可以看到某些东西正在发送到打印机,但似乎没有发送文件。

0 投票
0 回答
630 浏览

c# - 如何使用 C# 禁用高级打印功能(RawOnly)

我正在尝试使用 C# 禁用高级打印功能 (RawOnly)。我可以列出所有打印机:

我可以阅读 RawOnly 功能:

但我不知道 Set RawOnly 功能很热门。你能帮我解决这个问题吗?谢谢你。

有关 EnumeratedPrintQueueTypes 的其他信息https://msdn.microsoft.com/en-us/library/system.printing.enumeratedprintqueuetypes(v=vs.110).aspx

有关 PrintQueueAttributes 的其他信息 https://msdn.microsoft.com/en-us/library/system.printing.printqueueattributes(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet -1

PS 我不想使用 Win32_Printer 类,因为它有一些问题。

0 投票
2 回答
2566 浏览

c# - C# - 无法捕捉打印结束

我有一台打印机(HP PageWide MFP P57750)通过以太网电缆连接到专用网络。在一个简单的 C# Web App 中,用户将 pdf 文件发送到打印机并设置要打印的份数。在打印结束时,应用程序应通知作业结束。

我尝试使用 PrintDocument 的 EndPrint 事件,但它似乎在错误的时间触发,因为打印机仍在打印。

我也尝试将 PrintQueue 与 PrintJobInfoCollection 一起使用,但它只是第一次返回“正在打印”的 PrintJobStatus。然后,我等待 5 秒钟并重新检查状态,但打印机仍在打印时队列中没有作业!

我在控制面板-> 设备和打印机中看到了作业的进度。即使有很多份并且打印机仍在打印,打印也只会持续几秒钟。我认为在客户端将要打印的文件发送到打印机后,该作业会被删除。

我怎样才能赶上印刷的真正结束?

0 投票
0 回答
130 浏览

c# - got 调用线程无法访问此对象,因为另一个线程拥有它。在c#中取消打印作业时

我想通过它的作业信息取消打印队列中的特定打印作业,但是当程序运行时取消代码出错

调用线程无法访问此对象,因为不同的线程拥有它。

代码在这里:

你可以帮帮我吗?

0 投票
1 回答
686 浏览

c++ - C++ 更改打印队列所有者

我想知道是否可以更改在您打开打印队列以查看排队的打印机文档时可见的“所有者”名称。我有一个 Windows 服务,它接收来自用户的文档并将其发送到 Windows 打印机,并且所有者始终是登录到运行服务的工作站的用户的名称。我想将“所有者”更改为其他内容,这将在 Windows 服务加载和使用的 C++ Windows DLL 中完成。

添加 8/30/16@9:14am ET

谢谢你的建议,托马斯。我应该提到我的研究,但它又长又空。MSDN 有一个 SetJob 函数,它可以采用 4 个结构中的 1 个(pJob = JOB_INFO_1…JOB_INFO_4)。JOB_INFO_1、2 和 4 有一个 LPSTR pUserName,似乎可以用来更改打印作业的所有者(所有者?)。但是,在 SetJob 的备注部分它说:“在调用 SetJob 时忽略 JOB_INFO_1、JOB_INFO_2 或 JOB_INFO_4 结构的以下成员:JobId、pPrinterName、pMachineName、pUserName、pDrivername、Size、Submitted、Time 和 TotalPages 。”</p>

而 JOB_INFO_3 里面没有这个字段。好的。

我没有看到任何其他可以做到这一点的功能。你能指出我可以研究更多的具体内容吗?或者那是已知的工作?谢谢。

0 投票
2 回答
2661 浏览

c# - 如何通过 Printername 和 JobID 暂停 Win32_printJob

任务

当用户打印文档时,将出现暂停弹出然后填写表格单击输入表格将关闭并且工作已恢复。

我们有 50 台网络打印机2000 台客户端机器一台打印服务器

每个客户有3 或 4 台打印机

问题

如果用户在本地打印文档(例如:PDF PRINTER、XPS DOCUMENT WRITER)(或)使用网络打印机(CANON、HP),则打印作业立即暂停。

我的尝试

打印任何文档时,事件侦听器正在观察并返回打印作业

  • 第一次暂停方法中有时会起作用,并且大部分时间都无法正常工作。因为,它正在搜索打印作业但它不存在已经打印。

  • 第二个暂停方法不起作用因为,事件侦听器返回 Managementbaseobject 但如果要暂停打印作业需要 ManagementObject 如何将 ManageBaseObject 转换为 ManageObject

打印作业事件侦听器代码

主要操作代码

暂停打印作业方法 1

暂停打印作业方法 2

0 投票
0 回答
431 浏览

c# - 多个文档发送到默认打印机队列顺序

我正在开发一个应用程序,它作为打印代理工作而无需用户交互。在那里,我必须考虑以下条件。

  • 用户不应访问下载文件。
  • 文件打印后将被删除。
  • 下载文件可以是 Image/PDF 或 word.docx
  • 第一个下载的文件应该先打印。

到目前为止,我能够完成如下。- 为赶上新的下载文件而创建的观察者方法。

当新文件到来时,它会触发 Onchange 事件并打印文档。

但我的问题是,在完成下载文件的打印过程之前下载另一个文件时,应用程序将无法正常工作。

我使用如下打印选项。

我怎么能克服这个问题。我会非常感谢你的好想法。