【发布时间】:2017-11-30 01:51:52
【问题描述】:
我正在用 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)时,它出错了,我无法获得正确的总数打印。
有没有人遇到过这个问题~请帮忙,非常感谢
【问题讨论】:
-
您如何获得页数,什么是“错误”?
-
结果是错误的意思(只在N-Up打印的模式下),比如我打印的是10页的ppt;但是我打印的是5合1模式的ppt(打印一页5张幻灯片)。总页数应该是2,但它是10。
-
我使用 JOB_INFO_2.TotalPages 得到总页数
-
您确实应该在您的问题中提供尽可能多的信息。您没有告诉我们您正在测试的应用程序。它是谷歌幻灯片文档还是其他什么?哪些应用程序有效,哪些会导致问题?结果如何?