当我试图打印图像到700kb文件的打印机时,它发送120MB数据到打印机。我可以看到这个,因为我看到打印机假脱机120MB。为什么会发生这种情况?PrintDocument假脱机到打印机的方式很大
下面是PrintDocument.PrintPage
private void PrintPage(object sender, PrintPageEventArgs ev)
{
sw.WriteLine("start,PrintPage," + DateTime.Now.ToLongTimeString());
if (_running && _currentPage != null)
{
RectangleF PrintArea = ev.Graphics.VisibleClipBounds;
RectangleF NewImageSize = new RectangleF();
Double SF = Convert.ToDouble(PrintArea.Width)/Convert.ToDouble(_currentPage.Width);
NewImageSize.Width = Convert.ToInt32(_currentPage.Width * SF);
NewImageSize.Height = Convert.ToInt32(_currentPage.Height * SF);
//You can influence the quality of the resized image
ev.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
ev.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default;
ev.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Default;
//Draw the image to the printer
ev.Graphics.DrawImage(_currentPage, NewImageSize);
_currentPage.Dispose();
_currentPage = null;
//Trace.WriteLine(string.Format("IsFinished {0}, Count {1}", (_queue.IsFinished ? "True" : "False"), _queue.Count));
ev.HasMorePages = (!((_queue.IsFinished) && (_queue.Count == 0)));
}
sw.WriteLine("end,PrintPage," + DateTime.Now.ToLongTimeString());
}
有关提高性能的任何建议?目标是必须保持字母的清晰度 – greektreat 2009-07-22 19:52:24