在Windows应用程序中显示A4尺寸的图像

时间:2014-10-20 05:08:25

标签: c# winforms bitmap

我正在开展一个项目,我必须向用户展示图像。实际上图像是动态创建的位图图像(A4尺寸页面,必须打印到A4页面),有时它有多个页面,我必须给用户预览。那么如何在没有第三方应用程序的Windows应用程序中执行此操作?还是有什么比这更好的解决方案。但我必须创建这个位图图像以在所有情况下创建该页面。

1 个答案:

答案 0 :(得分:0)

A4是210×297mm的纸张尺寸。

位图以各种方式创建,但它们以某种方式总是需要像素大小,例如。 210×297像素。

要创建A4位图,您还需要决定分辨率,例如100dpi或800dpi ..

float mmpi = 25.4f;
int dpi = 150;
Bitmap A4 = new Bitmap( (int) (210/mmpi*dpi), (int)(297/mmpi*dpi) );
A4.SetResolution(dpi, dpi);

这将产生1240.1 x 1753.9像素和150dpi的位图;你可以像这样直接得到它:

Bitmap A4 = new Bitmap(1240, 1754)
A4.SetResolution(dpi, dpi);

要预览Bitmap,您只需将其分配到Image控件的PictureBox

pictureBox1.SizeMode = pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox1.Image = A4;

注意:

  • 当您尝试创建太大的位图时,您将遇到内存问题。 即使是200dpi也会抛出异常。
  • 您可能希望通过省略边距来减小实际尺寸。
  • 打印位图时需要考虑很多事情。
  • 您可能无法一次创建多个此类大图像。在创建第二个之前,您可能需要将一个存储到磁盘。
  • 以上代码将生成适合打印的图像。显然,这太大而无法在预览中显示。为此,您需要将其缩小或为显示尺寸创建另一个,可能是280x351像素。这可能是更好的选择。无论如何,您将有一个用于显示控件的Paint事件和一个用于打印文档的事件..