日期:2014-05-18  浏览次数:20757 次

晚上就回去了,发表一个问题大家讨论下!
公司的标签打印机一次出三张小标签,出过的标签不能继续使用,如图:


在实际工作中,经常打印几十张标签,但是每种标签的数量不固定,目前采用的是每种标签打印3的倍数,1张也打印3张。
(我目前是用三个PictureBox显示的标签,打印代码:  

  e.Graphics.DrawImage(PictureBox1.Image, 20, 0, 90, 58)
  e.Graphics.DrawImage(PictureBox2.Image, 154, 0, 90, 58)
  e.Graphics.DrawImage(PictureBox3.Image, 288, 0, 90, 58)



想做到在打印的时候,同时输入打印数量,让标签纸可以自动往前靠。

如图:


求自动往前靠的思路和实现方法!

------解决方案--------------------
随便写一下好了:
C# code
int 列=0;
for(var i =0; i< 标签数组.length; i++)
{
    列++;
    if(列==1)
    {
        PictureBox1.Image= 加载Image(标签数组[i]);
        e.Graphics.DrawImage(PictureBox1.Image, 20, 0, 90, 58)
    }
    else if(列==2)
    {
        PictureBox2.Image= 加载Image(标签数组[i]);
        e.Graphics.DrawImage(PictureBox2.Image, 154, 0, 90, 58)
    }
    else if(列==3)
    {
        PictureBox3.Image= 加载Image(标签数组[i]);
        e.Graphics.DrawImage(PictureBox3.Image, 288, 0, 90, 58)
        打印并且换页();
        列=0;
    }  
}
if(列!=0)
{
    打印并且换页();
}

------解决方案--------------------
没有,可能需要很多代码才能完成。
我看看我用D写的代码。
------解决方案--------------------
C# code
int 列=0;
int 行=0;
for(var i =0; i< 标签数组.length; i++)
{
    列++;
    行++;
    if(列==1)
    {
        PictureBox1.Image= 加载Image(标签数组[i]);
        e.Graphics.DrawImage(PictureBox1.Image, 20, 0, 90, 58)
    }
    else if(列==2)
    {
        PictureBox2.Image= 加载Image(标签数组[i]);
        e.Graphics.DrawImage(PictureBox2.Image, 154, 0, 90, 58)
    }
    else if(列==3)
    {
        PictureBox3.Image= 加载Image(标签数组[i]);
        e.Graphics.DrawImage(PictureBox3.Image, 288, 0, 90, 58)
        if(行==10)
        {
            打印并且换页();
            行=0;
        }
        列=0;
    }  
}
if(列!=0)
{
    打印并且换页();
}

------解决方案--------------------
探讨
回帖没8楼这么干的!