gpt4 book ai didi

c# - 为什么使用 Win32_PrintJob/C# 打印 N-Up 总页数错误?

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:31 27 4
gpt4 key购买 nike

我正在用 C# 开发一个程序,用于在打印时暂停并获取总页数,这是主要代码:

string wql = "SELECT * FROM Win32_PrintJob";
ManagementObjectCollection mos;
Dictionary<uint,short> checkedJobs = new Dictionary<uint,short>();

while (true)
{
Thread.Sleep(SleepTime);
try
{
mos = new ManagementObjectSearcher(wql).Get();
if (mos != null && mos.Count > 0)
{
foreach (ManagementObject mo in mos)
{
if (mo != null)
{
uint jobId = ProcessJob(mo);
if (!checkedJobs.ContainsKey(jobId))
checkedJobs.Add(jobId, 0);
}
}
}
// ...
}
}

它在正常任务中工作正常。但是在 N-Up 打印中,当我在一页中打印多张幻灯片(N Slides-In-One Page)时,它出错了,我无法获得正确的总数打印。

有没有遇到过这个问题的~求助,万分感谢

最佳答案

您的问题与另一个问题类似(请参阅我的 answer there 并点击链接了解更多信息)但也许它的不同足以保证在此处提供不同的答案。

基本上,并非所有打印驱动程序都支持 NUP。您正在使用的应用程序可能正在检查 DEVMODE (或忽略它)并自行处理 NUP 而不是 letting the Spooler handle it .

正如我在另一个答案中所说,Windows 页数不能依赖于所有应用程序和驱动程序。这可能会通过新的 XPS 打印系统得到改善,但对于旧的应用程序和驱动程序,获得可靠页数的唯一方法是解析打印假脱机文件。

关于c# - 为什么使用 Win32_PrintJob/C# 打印 N-Up 总页数错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47564653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com