从Windows打印后台处理程序中挤出更快的速度

时间:2014-07-16 17:45:23

标签: c# printing

我们的客户和我正试图找到一种方法来消除我公司在其仓库中集成的标签系统中的印刷瓶颈。

我们的系统设置方式,盒子扫描,我的软件这样做:

PrintDocument pd = new PrintDocument();
pd.PrinterSettings.PrinterName = PrinterName;
pd.PrintController = new StandardPrintController(); //Prevent print windows
pd.DefaultPageSettings.Landscape = false;
pd.DefaultPageSettings.Margins = new Margins(0, 25, 25, 0);
pd.PrintPage += (sender, args) =>
{
    Image i = Image.FromFile(@"D:\Product\Labels\" + LabelID + ".png");
    Rectangle m = args.MarginBounds;
    args.Graphics.DrawImage(i, m);
};
pd.Print();

将其发送给假脱机程序。该程序在带有Windows Server 2012的机架式服务器上运行,我们正在为由Intermec PX4i标签打印机驱动的五个标签篡改打印运输标签。每个打印作业都从不同的线程发送,因为我们的扫描点处理是异步的。现在,我们系统可以处理的最快的是5个盒子,每行一个,每2.75秒,他们希望每2秒加速5个盒子 - 问题是,如果我们让它更快,打印作业开始被抓住,spoolsv.exe开始吃掉我的程序和SQL Server没有的CPU负载。

不幸的是,我们的客户只能为标签提供单色.PNG图像文件(每个约27kb,你不会认为会使打印假脱机程序陷入困境......)而不是IPL / ZPL等价物(我们可以在几毫秒内通过TCP发送给打印机)。

有没有办法 - 无论是在代码中还是在打印设置中 - 都可以消除这个瓶颈?如果你有什么需要我详细说明的话,请告诉我。

0 个答案:

没有答案