这其实就是套打,很简单了,量好尺寸,换算成像素,设置好纸张类型,放一个Group和几个Label上去。
然后按客户号字段进行Group,每个Group后面加个PageBreak就行了。具体打几号到几号的选择在传数据给打印函数的时候进行选择,跟打印函数无关。

解决方案 »

  1.   

    针式打印机 打印 小票(长12cm  宽7cm)
    可是如何自动连续打印?光说是套打,可是怎么套打的啊!!!
    还有就是 怎么指定是哪个针式打印机......
      

  2.   

    楼主跟我做合格证打印是一样,一次可能打印几百张。
    一个数据表传给打印函数,打印函数foreach这个表,生成打印文档进行打印就行了
    针式打印机是提供打印的列表供用户选择,选择一次以后保存选项到配置文件,下次加载默认这个打印机就行了。
      

  3.   

    没有单独的例子,我找几段代码这个是加载打印机的
    public void LoadPrinter()
            {
                cbo.Properties.Items.Clear();
                if (_allownull) cbo.Properties.Items.Add("请选择……");            ManagementObjectSearcher query = new ManagementObjectSearcher("Select * from Win32_Printer");
                ManagementObjectCollection queryCollection = query.Get();            foreach (ManagementObject mo in queryCollection)
                {
                    cbo.Properties.Items.Add(mo["Name"].ToString());
                }            cbo.SelectedIndex = 0;
            }
    用户选择了打印机以后保存在配置文件里,这个根据你使用什么文件保存而定,就不贴了,加载的时候把上次保存的打印机取出来。
      

  4.   

    下面是打印函数,我这里是根据数据进行自动分割,比你那个要复杂点,你可以一行数据一张卡。
    public static void PNT_HGZ(XS_DJ cls, int maxsl, DataTable dt, string printer)
            {
                string rq = DateTime.Today.ToString("yyyy-M-d");
                Top_Cust tc=new Top_Cust(cls.CIDX);
                string customer = tc.CustID;
                foreach (DataRow dr in dt.Rows)
                {
                    string mm = dr["mmstr"].ToString();
                    string kh = dr["kh"].ToString();
                    string ys = dr["ys0"].ToString();
                    string gg = dr["ggstr"].ToString();
                    int sl = Function.CINT(dr["sl"], 0);
                    int ms = Function.CINT(dr["maxsl"], 0);
                    if (ms == 0) ms = maxsl;
                    if (ms < 0) continue;                while (sl > 0 && ms > 0)
                    {
                        int x = 0;
                        if (sl > ms)
                        {
                            x = ms;
                            sl = sl - ms;
                        }
                        else
                        {
                            x = sl;
                            sl = 0;
                        }                    RPT_HGZ rpt = new RPT_HGZ();
                        rpt.L_PH.Text = cls.PH;
                        rpt.L_MM.Text = mm;
                        rpt.L_KH.Text = kh;
                        rpt.L_YS.Text = ys;
                        rpt.L_GGStr.Text = gg;
                        rpt.L_SL.Text = x.ToString();                    rpt.PrintingSystem.ShowMarginsWarning = false;
                        rpt.Print(printer);
                    }
                }
            }
      

  5.   

    怎么做打印文件这个不用说了,照你的要求,就是量好尺寸,设置好纸张大小,拖几个Label上去就去,然后慢慢测试调位置吧。现在一般企业里发货单什么的都很少用套打了,基本都是空白纸打印,合格证和流程卡比较特殊,套打的比较多,合格证因为要印刷公司logo,流程卡因为工序不同工艺会不一样,而且印刷好的硬一点的卡片在生产流通过程中会更方便点,普通打印纸容易破。