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