问题标签 [print-spooler-api]

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 回答
1079 浏览

c++ - 无法获得状态为 JOB_STATUS_DELETED 的打印作业通知

我想在打印作业完成或删除时收到通知。现在我看到通知机制提供了 JOB_STATUS_DELETING,但无法获得 JOB_STATUS_DELETED 状态。

我在这里找到了类似的东西,但它并没有解决我的问题。

我正在做接下来的事情:

当我删除作业时,JOB_NOTIFY_FIELD_STATUS 仅通过 DELETING,没有任何进一步的状态通知,但我确实需要获得 DELETED 状态。我究竟做错了什么?

poller 方法的完整代码在这里: void Poll(JobTracker* owner, CServiceBase* service) { HANDLE hPrinter = NULL; 处理 hNotification;if (!OpenPrinter(owner -> GetPrinterName(), &hPrinter, NULL)) 返回;

}

0 投票
1 回答
293 浏览

c++ - 如何获取打印机类别(类型)?

我正在尝试获取可以在打印机属性窗口中看到的打印机类别,例如“传真”或“打印机”。

我发现的只是我可以从 DRIVER_INFO_8 中得到它,

但 pInfo->dwDriverAttribute 不显示 PRINTER_DRIVER_CATEGORY_FAX,有

所以我有点困惑 - 我怎样才能获得打印机类型?

0 投票
1 回答
1521 浏览

c# - EnumJobs 返回与 Marshal.SizeOF 不同的 JOB_INFO_1 大小

我从托管代码 (C#) 调用 Win32 函数 EnumJobs ( http://msdn.microsoft.com/en-us/library/windows/desktop/dd162625(v=vs.85).aspx )。

我指定级别 1 来接收 JOB_INFO_1 但我遇到的问题是上述函数返回 nBytesNeeded 作为每个结构 240 而Marshal.SizeOf(typeof(JOB_INFO_1))当我运行时是 64 字节导致内存异常Marshal.PtrToStructure。手动计算结构的字节数为 64,所以我对为什么从函数接收 240 字节结构有点茫然,任何见解都将不胜感激。

0 投票
1 回答
1513 浏览

c++ - When job is printed, last job status is JOB_STATUS_RETAINED, instead of JOB_STATUS_PRINTED

I poll printer queue on any change like JOB_CHANGE, and if I see that some job disappeared, I report to server that job has been printed or deleted, according to job last status.

Problem is that printer Lexmark X945e returned last job status only JOB_STATUS_RETAINED, but no JOB_STATUS_DELETED or JOB_STATUS_PRINTED.

What does that mean? Can I use retained status to say that job was printed?

0 投票
4 回答
2693 浏览

c# - 在 C# 中使用 PrintSpoolerAPI 函数 SetForm()

我正在开发要在其中打印自定义文档的 Windows 窗体应用程序。此自定义文档具有自定义大小,我必须使用 C# 代码设置默认打印页面大小。

我做了一些谷歌搜索并遇到了PrintSpoolerAPI。我找到的代码会将自定义表单/页面使用AddForm()方法添加到可用页面列表以进行打印。我还想将这个新添加的页面设置为默认打印页面。

我试着在代码中写下这一行

它返回一个true值,但未设置默认打印页面。

在这方面有什么dmPaperSize作用吗?

这是完整的代码:

}

需要帮助来解决这个问题。

0 投票
1 回答
977 浏览

winapi - 通过 Winspool 打印

我正在尝试为网站建立一种打印服务,以便与之通信并将可打印文档发送到(pdf、html、excel)。我决定去。

我在下面创建了一个简单的程序。在某些 PC 上它可以工作 (Windows 7) 在其他 PC (Windows 8) 上它不工作(对)。当它不起作用时,该作业在打印队列中可见不到一秒钟,然后消失。该代码不输出任何错误。我在 Windows 事件日志中找不到任何内容。

我还尝试了我可以在网上找到的 c++ 中的 RawPrinter 示例,但它显示了相同的行为。

有谁知道我做错了什么?:(

0 投票
0 回答
313 浏览

print-spooler-api - 从 spl 文件中获取副本数

我使用下面的代码从 spl 文件中获取副本数。对于 windows 2008 服务器生成的 spl 文件,没有 SpoolerRecordTypes.SRT_DEVMODE。

0 投票
0 回答
1311 浏览

c# - C#打印如何获取副本数

我正在尝试制作打印管理服务器。我有 1 台打印机,与其他 4 人共享。

但我需要获取每个打印作业的副本数(例如 user2 制作 3 份相同的打印作业)

我需要在打印前查看份数。请帮我

0 投票
0 回答
146 浏览

python - 结合打印机后台处理程序文件以更好地利用纸张空间

问题:我每天使用 FedEx 的 ShipRush 程序批量打印 Ebay/Amazon 每日订单的装箱单。此服务按原样自动执行很多操作,但不会使用太多打印订单的实际纸张。每个订单占用的空间不到标准 8.5x11" 打印纸提供的总空间的 1/3。

我的任务是每天处理几十个订单,所以你可以想象我已经这样做了几个月/几年的纸张浪费量(更不用说我不是唯一一个使用 FedEx 软件的人)。我估计我工作的公司每年会浪费6400张纸。

问题/解决方案:我想知道,这个社区可以提供任何意见来解决这个问题或解决这个问题吗?这是我的设想。我知道一个 GitHub 存储库遇到了关于图像的类似问题(Image - Stitcher)后台打印程序缓存在一页上打印,而不是 3 个单独的页面。考虑到打印后台处理程序的性质,这甚至可能吗?或者文档的缓存方式?

注意:我不是在找人为我制作脚本,我对 Python 和其他 Windows API 非常熟悉。我很好奇,是否有可能在将打印后台处理程序发送到打印机之前/期间更改此级别的打印后台处理程序?如果是这样,是否有特定的工具/命令/功能可以为我指明正确的方向?

0 投票
3 回答
3160 浏览

vba - 检查打印后台处理程序状态(运行与否)

我需要检测 Print Spooler 服务是否正在运行。我可以找到 VB.NET 的各种资源(例如,ServiceProcess.ServiceController用于实际操作服务),但 VB6 没有。

有什么方法可以检查 Print Spooler 是否在 VB6 中运行?理想情况下开始它,但没有它我可以生存。