繁体   English   中英

System.Drawing.Printing.PrintDocument慢

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM