我有一些代码用于以编程方式创建一个文档发送到打印机。它是这样的:c#图形创建
private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs ev)
{
ev.Graphics.DrawImage(pictureBox1.Image, 50, 100);
string drawToday="Date : "+strToday;
string drawPolicyNo="Policy # : " + strPolicyNo;
string drawUser="User : " + strUser;
Font drawFont=new Font("Arial",30);
SolidBrush drawBrush=new SolidBrush(Color.Black);
PointF drawPointToday=new Point(50,400);
PointF drawPointPolicyNo=new Point(50,450);
PointF drawPointUser=new Point(50,500);
ev.Graphics.DrawString(drawToday,drawFont,drawBrush,drawPointToday);
ev.Graphics.DrawString(drawPolicyNo,drawFont,drawBrush,drawPointPolicyNo);
ev.Graphics.DrawString(drawUser,drawFont,drawBrush,drawPointUser);
}
其有效代码,但现在我需要做同样的程序,而是将其写入到一个图像文件,以便它可以被发送到浏览器,并从那里打印。重复使用这段代码应该相对简单,但不幸的是,在更换PrintPageEventArgument时使用了什么样的绘图表面。
感谢
编辑:谢谢,我感到我只是需要另一个图形对象,但显卡本身对象不具有公共构造函数,所以我在找的是什么对象上的建议,我需要代替以便能够创建一个Graphics对象来绘制。我想也许是位图?位图当然是基于像素而不是基于点的,所以我不确定这是否是最好的介质。
你可以得到一个图形对象来自许多不同的地方,如图像和控件。您可能会想要查看DpiX,DpiY,PageScale和PageUnit(也许是我现在不记得的其他几个属性)属性,以便从不同来源获取图形对象以类似方式运行。使用调试器调查PrintPage事件中图形对象的值以获得良好的起点。 – 2009-06-04 22:20:22