[英]System.Drawing.Printing.PrintDocument Is Slow
我有一个需要打印图元文件的应用程序。 图元文件是SSRS报告的呈现。 我正在使用System.Drawing.Printing.PrintDocument类来打印报告。 这是我做印刷的班级:
public class EMFPrinter
{
private IList<Stream> m_streams;
private string printerName;
private int m_currentPageIndex;
public EMFPrinter(IList<Stream> reportstreams, string printer)
{
m_streams = reportstreams;
printerName = printer;
m_currentPageIndex = 0;
}
public void Print()
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrinterSettings.PrinterName = printerName;
printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
printDoc.Print();
}
private void PrintPage(object sender, PrintPageEventArgs ev)
{
Metafile pageImage = new Metafile(m_streams[m_currentPageIndex]);
ev.Graphics.DrawImage(pageImage, ev.PageBounds);
m_currentPageIndex++;
ev.HasMorePages = (m_currentPageIndex < m_streams.Count);
}
}
如果从台式机(Windows 8)运行此程序,它将运行良好。 如果我尝试从需要在其上运行的服务器(Windows Server 2008 R2)上运行它,则它对于某些打印机非常适用,但是我需要在其上进行打印的打印机是HP LaserJet 1536dnf,并且在我尝试进行打印时从服务器到它的打印时间大约为五分钟。 如果我尝试从台式机打印到同一台打印机,它将立即打印。 如果我尝试通过某些应用程序(例如油漆)从服务器打印到该打印机,则它将立即打印。
是什么导致我的代码需要很长时间才能从服务器打印到该打印机上?
最终成为打印驱动程序问题。 与之抗争了一段时间之后,我下载了最新的打印驱动程序并将其安装在服务器上。 然后,我使用新的打印驱动程序将打印机安装在服务器上,并将其设置为具有ip地址端口的本地打印机。 这解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.