C# 怎样打印图片及文字信息
如题,,各位大哥谁做过,请帮忙啊。。。。。--------------------编程问答-------------------- PrintDocument组件 --------------------编程问答-------------------- 有打印类就可以 --------------------编程问答-------------------- 用水晶报表应该可以插入一个图片,用lable也能打印文字
用微软自己带的报表也可以。想了想办法其实很多
如果想套打的话, printDocument1_PrintPage也能做到,文字和图片就用绘图的方式直接画到打印机上:
如下:(大概就这么一个意思,具体的自己可以去网上查查)
private void button1_Click(object sender, EventArgs e)//另外一种套打
{
PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
printPreviewDialog.Document = printDocument1;
#region //设置纸张大小
PaperSize pkCustomSize1 = new PaperSize("First custom size ", 800, 500);
printDocument1.PrintPage += new PrintPageEventHandler(this.printDocument1_PrintPage);
printDocument1.DefaultPageSettings.PaperSize = pkCustomSize1;//将自定义的Papersize赋给PrintDocument
printDocument1.DefaultPageSettings.PaperSize.Height = 500;//您可以修改pagesize的大小
printDocument1.DefaultPageSettings.PaperSize.Width = 800;
#endregion
string strtemp = "";
for (int i = 0; i < 20; i++)
{
strtemp = dataGridView1[0, i].Value.ToString() + "- " + dataGridView1[4, i].Value.ToString() + "- " + dataGridView1[1, i].Value.ToString() + "\n" + strtemp;
}
lineReader = new StringReader(strtemp);
try
{
printPreviewDialog.ShowDialog();
}
catch (Exception excep)
{
MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics g = e.Graphics; //获得绘图对象
#region //程序编写时需要用到,显示图像以及坐标
Bitmap pic = new Bitmap("e:\\fapiao.jpg");
g.DrawImage(pic, 60, 90);
/*
for (int i = 0; i < e.PageSettings.PaperSize.Height; i = i + 15)
{
g.DrawLine(new Pen(Color.Brown, (float)0.20), 0, i, e.PageSettings.PaperSize.Width, i);
g.DrawString(i.ToString(), new Font("宋体", 7), Brushes.Black, 10, i);
}
for (int i = 0; i < e.PageSettings.PaperSize.Width; i = i + 15)
{
g.DrawLine(new Pen(Color.Brown, (float)0.20), i, 0, i, e.PageSettings.PaperSize.Height);
g.DrawString(i.ToString(), new Font("宋体", 7), Brushes.Black, i, 10);
}
//*/
#endregion
g.DrawString("济南金钟公司", new Font("宋体", 10), Brushes.Black, 210, 195);
g.DrawString("123456778668", new Font("宋体", 10), Brushes.Black, 210, 210);
g.DrawString("123456778668", new Font("宋体", 10), Brushes.Black, 585, 195);
g.DrawString("2010-11-12 13:13:13", new Font("宋体", 10), Brushes.Black, 585, 210);
float linesPerPage = 0; //页面的行号
float yPosition = 0; //绘制字符串的纵向位置
float leftMargin = e.MarginBounds.Left; //左边距
float topMargin = e.MarginBounds.Top; //上边距
FontFamily fontFamily = new FontFamily("宋体");
Font printFont = new Font(
fontFamily,
16,
FontStyle.Regular,
GraphicsUnit.Pixel);
linesPerPage = 5;//e.MarginBounds.Height / printFont.GetHeight(g);//每页可打印的行数
int count = 0;
string line = null; //行字符串
SolidBrush myBrush = new SolidBrush(Color.Black);//刷子
while (count < linesPerPage && ((line = lineReader.ReadLine()) != null))
{
yPosition = topMargin + (count * printFont.GetHeight(g));
g.DrawString(line, printFont, myBrush, leftMargin + 60, yPosition + 170, new StringFormat());
count++;
}
if (PageCount <6)
{
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
}
PageCount++;
}
补充:.NET技术 , C#