问题  POS格式的PRINT DataGridView

加入
2019年9月17日
消息
5
编程经验
1-3
我已经尝试了几个代码,但无法从gridview加上数据加上我在这里发现的数据并不适合我的需要,但将欣赏链接。
我的挑战是来自C#的涂料和绘图工具,因为我仍然是一个关于它的学习而言,这不太了解它。
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,903
地点
切萨皮克,va.
编程经验
10+
向我们展示您当前的代码。

除了旁边,它通常更容易(并且还要在打印到PDF时剪切纸张浪费和/或额外点击),只需创建一个简单的窗口,首先要将绘图绘制到该窗口中以弄错物流和格式。如果您可以绘制窗口,则绘制到打印机的基本相同,尽管尺寸和像素尺寸可能不同。

除了旁边,您甚至通过MSDN中提供的一些示例代码吗?例如,有这个 printpage事件 documentation.
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
Further to Skydiver's suggestion, you can use the PrintPreviewDialog to display what would be printed using a PrintDocument wityhout actually printing it, so you can use basically the same code as for a real print run.

要回答问题如上所要求,您将从网格中获取数据以与其他任何其他内容的方式以相同的方式打印。从网格获取数据与打印绝对无关,因此您可以独立完成。所以,忘记打印第一,只是写代码以获取所需的数据。您可以使用调试器来测试。一旦你能做到这一点,那么你就可以考虑打印。您可以练习如何完全独立于网格打印,所以这样做。一旦您了解如何获取数据以及如何打印,只有这样,您应该考虑将两个放在一起。这就是一般工作的学习和问题方式:划分和征服。
 
加入
2019年9月17日
消息
5
编程经验
1-3
 pos.jpg.

这就是我想要实现的。从stackoverflow挑选它。
当涉及到Windows绘画和绘画时,我是新手。我需要帮助
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,903
地点
切萨皮克,va.
编程经验
10+
无论您是新手,是否都显示您当前的代码。我们不是代码编写服务。如果您的期望是为了我们为您编写代码,那么您可能会等待很长一段时间。
 

sh

众所周知的成员
加入
2018年9月5日
消息
1,982
编程经验
10+
我们知道你需要帮助,这就是你在这里的原因。但没有人会为你写它。那是你的工作。鉴于您收到了上面的指针,从那里开始,一旦您有东西要显示为尝试,如果它没有按预期工作并解释您写的代码,请发布。然后只会获得进一步的帮助。我应该让你知道,乞求代码被吓坏了。

试着抬头看MSDN 内联代码 在约翰的帖子和跳伞运动员的联系,看看他们是否是你想要的东西。
 
加入
2019年9月17日
消息
5
编程经验
1-3
私有void print()
{
string welcome = "感谢您与我们购物";
字符串invoiceno = txtinvoiceno.text;
十进制gross = convert.toint32(txtgross.text);
十进制net = convert.toint32(txtnet.text);
十进制折扣=总计 - 网;
字符串ImoIdedate = datetimepicker1.value.tolongDatestring();

int lineHeight = 20;
int supplementarylines = 15;

位图比特数=新位图(欢迎.Length * 30,(SupparearyLines + DataGridView1.rows.count)* LineHeight);
stringFormat格式= new stringFormat(StringFormatFlags.DirectionRegredToleft);
使用(图形图形= Graphics.fromImage(Bitm))
{
int startX = 0;
int startY = 0;
int offsetY = 0;
字体newfont2 = null;
字体itemfont = null;
Solulbrush Black = null;
Solulbrush White = null;

try
{
// font newfont =新字体("Arial Black", 8);
newfont2 = new Font("Calibri", 11);
itemFont = new Font("Calibri", 11);

黑色=新的solybrush(color.black);
白色=新的solybrush(color.white);

// pointf point = new pointf(40f,2f);

Graphic.filleRectangle(白色,0,0,bitm.width,bitm.height);
graphic.DrawString("" + InvoiceNo + "invoice no.",newfont2,黑色,startx + 150,starty + offsety);
offsety = offsety + lineheight;

// pointf pointprice = new pointf(15f,45f);
graphic.DrawString("" + InvoiceDate + "",newfont2,黑色,startx,starty + offsety);
offsety = offsety + lineheight;
offsety = offsety + lineheight;

graphic.DrawString("产品名称" + "Product ID " + "Description",newfont2,黑色,startx + 15,starty + offsety);
offsety = offsety + lineheight;
offsety = offsety + lineheight;
graphic.DrawString("---------------------------------------------------------------- -----------------------------------------------------",newfont2,黑色,startx,starty + offsety);
// pointf pointpname = new pointf(10f,65f);
// pointf pointbar = new pointf(10f,65f);

offsety = offsety + lineheight;
offsety = offsety + lineheight;

for (int i = 0; i <DataGridView1.rows.count; I ++)
{
int ii = 1;
ii++;

graphic.DrawString(" "+ DataGridView1.rows..cells [3] .Value +" "+ DataGridView1.rows..cells [2] .value +" "+ DataGridView1.rows..cells [1] .Value +"", itemFont,
黑色,startx + 15,starty + offsety);
offsety = offsety + lineheight;
}
offsety = offsety + lineheight;
graphic.DrawString("---------------------------------------------------------------- -----------------------------------------------------",newfont2,黑色,startx,starty + offsety);
offsety = offsety + lineheight;
graphic.DrawString("Gross :" + gross + "",newfont2,黑色,startx + 15,starty + offsety);
offsety = offsety + lineheight;
graphic.DrawString("Discount :" + discount + "",newfont2,黑色,startx + 15,starty + offsety);
offsety = offsety + lineheight;
graphic.DrawString("Net :" + net + "",newfont2,黑色,startx + 15,starty + offsety);
offsety = offsety + lineheight;
offsety = offsety + lineheight;
graphic.DrawString("---------------------------------------------------------------- -----------------------------------------------------",newfont2,黑色,startx,starty + offsety);
offsety = offsety + lineheight;
graphic.DrawString("" + welcome + "",newfont2,黑色,startx,starty + offsety);
offsety = offsety + lineheight;
}
finally
{
black.Dispose();
white.Dispose();
itemFont.Dispose();
newfont2.Dispose();
}
}

使用(MeminTStream MMSt = New MemoryStream()))
{
bitm.Save("ms", ImageFormat.Jpeg);
picturebox1.image = bitm;
picturebox1.width = bitm.width;
picturebox1.height = bitm.height;


}


}


这是我试图解决的代码
 
加入
2019年9月17日
消息
5
编程经验
1-3
C#:
private void printready()
        {
            string welcome = "感谢您与我们购物";
            字符串invoiceno = txtinvoiceno.text;
            十进制gross = convert.toint32(txtgross.text);
            十进制net = convert.toint32(txtnet.text);
            十进制折扣=总计 - 网;
            字符串ImoIdedate = datetimepicker1.value.tolongDatestring();

            int lineHeight = 20;
            int supplementarylines = 15;

            位图比特数=新位图(欢迎.Length * 30,(SupparearyLines + DataGridView1.rows.count)* LineHeight);
            stringFormat格式= new stringFormat(StringFormatFlags.DirectionRegredToleft);
            使用(图形图形= Graphics.fromImage(Bitm))
            {
                int startX = 0;
                int startY = 0;
                int offsetY = 0;
                字体newfont2 = null;
                字体itemfont = null;
                Solulbrush Black = null;
                Solulbrush White = null;

                try
                {
                    // font newfont =新字体("Arial Black", 8);
                    newfont2 = new Font("Calibri", 11);
                    itemFont = new Font("Calibri", 11);

                    黑色=新的solybrush(color.black);
                    白色=新的solybrush(color.white);

                    // pointf point = new pointf(40f,2f);

                    Graphic.filleRectangle(白色,0,0,bitm.width,bitm.height);
                    graphic.DrawString("" + InvoiceNo + "invoice no.",newfont2,黑色,startx + 150,starty + offsety);
                    offsety = offsety + lineheight;

                    // pointf pointprice = new pointf(15f,45f);
                    graphic.DrawString("" + InvoiceDate + "",newfont2,黑色,startx,starty + offsety);
                    offsety = offsety + lineheight;
                    offsety = offsety + lineheight;

                    graphic.DrawString("产品名称" + "Product ID      " + "Description",newfont2,黑色,startx + 15,starty + offsety);
                    offsety = offsety + lineheight;
                    offsety = offsety + lineheight;
                    graphic.DrawString("---------------------------------------------------------------- -----------------------------------------------------",newfont2,黑色,startx,starty + offsety);
                    // pointf pointpname = new pointf(10f,65f);
                    // pointf pointbar = new pointf(10f,65f);

                    offsety = offsety + lineheight;
                    offsety = offsety + lineheight;

                    for (int i = 0; i <DataGridView1.rows.count; I ++)
                    {
                        int ii = 1;
                        ii++;

                        graphic.DrawString(" "+ DataGridView1.rows.[i].Cells[3].Value + "  "+ DataGridView1.rows.[i].Cells[2].Value + "  "+ DataGridView1.rows.[i].Cells[1].Value + "", itemFont,
                                 黑色,startx + 15,starty + offsety);
                        offsety = offsety + lineheight;
                    }
                    offsety = offsety + lineheight;
                    graphic.DrawString("---------------------------------------------------------------- -----------------------------------------------------",newfont2,黑色,startx,starty + offsety);
                    offsety = offsety + lineheight;
                    graphic.DrawString("Gross :" + gross + "",newfont2,黑色,startx + 15,starty + offsety);
                    offsety = offsety + lineheight;
                    graphic.DrawString("Discount :" + discount + "",newfont2,黑色,startx + 15,starty + offsety);
                    offsety = offsety + lineheight;
                    graphic.DrawString("Net :" + net + "",newfont2,黑色,startx + 15,starty + offsety);
                    offsety = offsety + lineheight;
                    offsety = offsety + lineheight;
                    graphic.DrawString("---------------------------------------------------------------- -----------------------------------------------------",newfont2,黑色,startx,starty + offsety);
                    offsety = offsety + lineheight;
                    graphic.DrawString("" + welcome + "",newfont2,黑色,startx,starty + offsety);
                    offsety = offsety + lineheight;
                }
                finally
                {
                    black.Dispose();
                    white.Dispose();
                    itemFont.Dispose();
                    newfont2.Dispose();
                }
            }

            使用(MeminTStream MMSt = New MemoryStream()))
            {
                bitm.Save("ms", ImageFormat.Jpeg);
                picturebox1.image = bitm;
                picturebox1.width = bitm.width;
                picturebox1.height = bitm.height;


            }


        }
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,903
地点
切萨皮克,va.
编程经验
10+
好的。第一个问题:你为什么要绘制位图?
 
最佳 底部