簡體   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