问题标签 [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 投票
2 回答
390 浏览

wmi - 我可以使用 WMI 读取打印机假脱机文件吗

我的客户有一个旧的基于 DOS 的应用程序,它将格式化的输出发送到打印机。我已禁用打印,因此假脱机文件保留在打印队列中。我想拿起这些假脱机文件并将它们转换为 PDF 格式(然后最好删除它们)。这可以使用 WMI 吗?

顺便说一句,我无法更改应用程序中产生打印输出的任何内容。

我想将此作为我支持的现有 Visual Foxpro 实用程序的一部分。

0 投票
0 回答
24 浏览

printing - 在打印操作中,有没有办法使用假脱机进程钩子获取启动打印的应用程序的名称/pid

我有加载到后台处理程序 exe (Spoolsv.exe) 的钩子。我可以通过 SetJob() 函数中的 JOB_INFO_1 获取用户以及应用程序的部分窗口标题。但我认为通过迭代所有具有部分匹配的窗口来查找应用程序名称是一种肮脏的方式。

如果有任何其他子系统或方式可以为我提供启动打印操作的应用程序名称/pid。

0 投票
0 回答
46 浏览

java - 在 Windows 10 的打印机后台处理程序中显示文档名称

我正在使用 Java 应用程序将 PDF 文档打印到 EPSON L550 系列打印机,但我在 Printer Spooler 窗口中将文档名称作为“Java 打印”而不是实际文件名。我需要解决此问题并希望显示原始文件名。

0 投票
0 回答
188 浏览

python - 在 Python 中批量打印多个 PDF

大家下午好。这是我在 StackOverflow 上的第一篇文章,所以如果我错过了一些信息或违反任何规则,请宽恕。

我正在尝试以def类的形式在 Python 中编写一个脚本,该脚本打印列表中所有 PDF 文件的硬拷贝(每个 PDF 都是具有其绝对路径的字符串),并且在每个打印作业完成后,执行某些命令(等待几秒钟并播放声音)。

换句话说,理想情况下是这样的:

让我给你一些背景信息,以了解我想要实现的目标。

这将是一个用 Python 编写的更大程序的一部分,它根据给定的标准生成一堆 PDF 文件(我不会在这里进一步挖掘,没关系);然后我的想法是播放声音来警告我它已经完成,让打印机在传递到下一个之前等待 20 秒,这样我就有时间把我在那一刻在办公室做的事情放在一边,然后装订已经完成的事情刚出来打印,最后继续在list.

我尝试了很多解决方案,使用了 win32print 和 win32api、ShellExecutable,基本上所有在线上的东西,以及我可以自己发明的所有东西。但在我看来,Windows API 非常古怪。这就是我尝试过的: https ://www.blog.pythonlibrary.org/2013/12/19/pywin32-monitor-print-queue/ ,当然还有: http: //timgolden.me.uk/pywin32-docs/ win32print.html

我设法创建了一个打印列表中所有文件的脚本,它工作正常;对我来说困难的是 a) 完成后从打印机了解;b) 确保它自己运行;有时 Tim Golden 脚本会弹出 Adob​​e Acrobat Reader 并要求用户确认……在现实生活中,这意味着在我不知道的情况下停止程序运行。

另一件事:它必须在 Windows 上运行,这就是他们在我们办公室的操作系统。打印机是网络打印机,但我想调整任何脚本来适应使用 win32api 的脚本并不难。

感谢您提供的任何建议或灵感,我对此感到非常孤单!