c#graphicsdrawtring()listview to image

时间:2013-11-08 07:15:18

标签: c# mysql c listview c#-4.0

我在c#中为我的客户开发发票打印应用程序,数据库是mysql。产品被添加到listview项目。我想将该列表视图绘制到图像。我试着循环listview项目。但它不起作用。列表视图中的数据没有逐行显示。

注意:productlist是listview的名称

           int column = 2;   

           Bitmap bit = new Bitmap("D:\\jijo.jpg");
            Graphics cd = Graphics.FromImage(bit);

           for (int i = 0; i < productlist.Items.Count; i++)
            {

           cd.DrawString(productlist.Items[i].SubItems[column].Text, new Font("Arial", 19, FontStyle.Bold), SystemBrushes.ActiveCaptionText, new Point(0, 0 ));

            }

            bit.Save("D:\\sijo.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

1 个答案:

答案 0 :(得分:1)

由于new point(0,0),您在同一位置反复绘制字符串。尝试将字符串一个接一个地绘制。例如,您可以将new Point(0,0)替换为new Point(0, 24 * i)。您可以尝试字符串之间的各种间距。

编辑:由于您正在绘制图片,我会使用像素高度而不是常规高度。例如,您可以替换

new Font("Arial", 19, FontStyle.Bold) 

new Font("Arial", 19, FontStyle.Bold, GraphicsUnit.Pixel);

因此,您的drawString调用将如下所示:

cd.DrawString(productlist.Items[i].SubItems[column].Text, 
  new Font("Arial", 19, FontStyle.Bold, GraphicsUnit.Pixel), 
  SystemBrushes.ActiveCaptionText, new Point(0, 24 * i));