0

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

注意:productlist 是列表视图的名称

           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);
4

1 回答 1

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));
于 2013-11-08T07:19:57.567 回答