1

我正在解决程序(ReportGenerator)中的问题,这似乎是打印报告的问题,质量极差或太大。

该项目涉及使用两个线程来同步准备页面以供预览和打印它们的任务。这两个线程的起点阻止我在适当的时间使用 PrintPageEventArg(PrintDocument_PrintPage 的输入),以便使用可以提高打印质量的 e.graphics。为了尝试解决这个问题,我从位图 (graphics.FromImage(bitmap)) 创建了一个图形,但这会产生自己的问题。为了使用此事件,我必须更改线程的起点,从而导致更多问题。我的时间有限,我不能花时间完全重写这个项目。关于我可以尝试什么以找到解决方法有什么建议吗?

这是项目的一般概述,包括线程和我的方法:

  1. 打印显示对话框 -> 确定
  2. Print_Document_BeginPrint -> 线程从这里开始 3.Create a graphics from bitmap(graphics.FromImage(bitmap)) 如果我可以使用 PrintPageEventArg 从这里开始,我的问题将得到解决,但我没那么幸运

    或者,我可以创建一个位图并在其上绘制一个准备好的图形 (graphics.Draw(..bitmap...)) 将此图像保存在系统上,然后在 PrintDocument_PrintPage 中恢复它,此方法允许我使用 PrintPageEventArg 但只有在我恢复先前创建的图形并打印它们。

我之前在这些链接上问过与此问题相关的问题。 使用“graphics.DrawString”后如何提高打印文本质量? 将图像保存为位图而不损失质量

任何帮助将不胜感激。提前致谢。

4

1 回答 1

0

令人困惑。

为什么不绘制从打印机 HDC 创建的图形?如果您先绘制位图图形,则位图需要具有较高的分辨率(例如 300-dpi)才能获得更好的打印质量。但是由于向打印机发送大量图像,打印可能会很慢。

于 2012-08-01T05:27:33.250 回答