我有一个应用程序需要打印一个元文件。元文件是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 2008 R2)运行它,它对某些打印机来说很好,但是我需要它在上面打印的打印机是HP LaserJet 1536 and,当我试图从服务器打印到它时,打印大约需要5分钟。如果我尝试从桌面打印到同一台打印机,它会立即打印。如果我试图从服务器从某个应用程序(比如画图)打印到那个打印机,那么它就会立即打印。
是什么原因导致我的代码花了这么长时间从服务器打印到这台打印机?
发布于 2014-01-13 19:37:58
这最终是打印驱动程序的问题。与此斗争了一段时间后,我下载了最新的打印驱动程序,并将其安装在服务器上。然后,我使用新的打印驱动程序将打印机安装在服务器上,并将其设置为具有ip地址端口的本地打印机。这个解决了问题。
https://stackoverflow.com/questions/20644564
复制相似问题