首页 > 技术 > 编程 > C# > c#中如何用codesoft来打印标签开发分享

c#中如何用codesoft来打印标签开发分享

2017-01-11 浏览()

以前使用过delphi和java开发过使用codesoft,最近因需要用c#开发了一个用codesoft来打印标签的程序。源代码分享给需要的人。

业务背景:

    把datagridview中的数据打印 标签(需要对coesoft软件有一定的了解)。

操作方法:

1  使用codesoft制做一个打印模板(这里就不再讲了)

2  在c#项目中引用codesoft插件。

         找到项目中的[引用],右击添加引用,找到浏览,选中c:\program files\cs6下的Lppx2.tlb,这样组件就安装完成。

\

     \

安装完后,在引用下面会出现:\

\

3  源代码及说明如下,下面是一个打印的画面和程序:

\\


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace OPurchase
{
    public partial class frmJP_CODESOFT_PT : Form
    {
   
        public int ilableLx;//打印模板类型,目前这里仅一个模板
        public DataGridView dv;//定义公共变量,调用这个窗口时把datagridview传进来,
        public frmJP_CODESOFT_PT()
        {
            InitializeComponent();
        }

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Escape)
            {
                Close();
            }
            else if (keyData == Keys.Enter)
            {

                SendKeys.Send("{tab}");
                return true;

            }

            return base.ProcessCmdKey(ref msg, keyData);
        }

        private void btnSet_Click(object sender, EventArgs e)
        {

        }

        private void btnPrint_Click(object sender, EventArgs e)
        {
            if (ilableLx == 0)//模板一
            {
                LabelManager2.ApplicationClass labApp = null;
                LabelManager2.Document doc = null;
                string labFileName=System.Windows.Forms.Application.StartupPath + @"\barJapLab.Lab";              
                try
                {

                    if (!File.Exists(labFileName))
                    {
                        MessageBox.Show("沒有找到標簽模板文件:barJapLab.Lab,請聯系系統管理員", "溫馨提示");
                        return;
                    }
                    labApp = new LabelManager2.ApplicationClass();
                    labApp.Documents.Open(labFileName, false);// 调用设计好的label文件
                    doc = labApp.ActiveDocument;
                    if (dv.SelectedRows.Count > 0)
                    {
                        progressBar1.Maximum = dv.SelectedRows.Count;
                        progressBar1.Value = 0;
                        
                        for (int i = 0; i < dv.SelectedRows.Count; i++)  //选中多行打印
                        {  
                            //下面这些是给模板的变量传值进去                         
                            doc.Variables.FormVariables.Item("barcode_no").Value = dv.SelectedRows[i].Cells["barcode_no"].Value.ToString();
                            doc.Variables.FormVariables.Item("style_no").Value = dv.SelectedRows[i].Cells["style_no"].Value.ToString();
                            doc.Variables.FormVariables.Item("upp_jp").Value = dv.SelectedRows[i].Cells["upp_jp"].Value.ToString();
                            doc.Variables.FormVariables.Item("outsole_jp").Value = dv.SelectedRows[i].Cells["outsole_jp"].Value.ToString();
                            doc.Variables.FormVariables.Item("col_jp").Value = dv.SelectedRows[i].Cells["col_jp"].Value.ToString();
                            doc.Variables.FormVariables.Item("size_width").Value = dv.SelectedRows[i].Cells["size_width"].Value.ToString();
                            doc.Variables.FormVariables.Item("price").Value = dv.SelectedRows[i].Cells["price"].Value.ToString();
                            doc.Variables.FormVariables.Item("comp_jp").Value = dv.SelectedRows[i].Cells["comp_jp"].Value.ToString();
                            doc.Variables.FormVariables.Item("address_jp").Value = dv.SelectedRows[i].Cells["address_jp"].Value.ToString();
                            doc.Variables.FormVariables.Item("url").Value = dv.SelectedRows[i].Cells["url"].Value.ToString();
                            //下面这行是打印份数的定义
                            doc.PrintDocument(Convert.ToInt16(dv.SelectedRows[i].Cells["qty"].Value) + Convert.ToInt16(dv.SelectedRows[i].Cells["att_qty"].Value));
                            progressBar1.Value++;
                            progressBar1.Refresh();
                            lbStatus.Text = "總共" + dv.SelectedRows.Count.ToString() + "行需要列印,已送出"+Convert.ToString (i+1)+"行";
                            lbStatus.Refresh();
                            this.Refresh();

                        }
                    }
                    else  //光标所在行打印
                    {
                        doc.Variables.FormVariables.Item("barcode_no").Value = dv.CurrentRow.Cells["barcode_no"].Value.ToString();
                        doc.Variables.FormVariables.Item("style_no").Value = dv.CurrentRow.Cells["style_no"].Value.ToString();
                        doc.Variables.FormVariables.Item("upp_jp").Value = dv.CurrentRow.Cells["upp_jp"].Value.ToString();
                        doc.Variables.FormVariables.Item("outsole_jp").Value = dv.CurrentRow.Cells["outsole_jp"].Value.ToString();
                        doc.Variables.FormVariables.Item("col_jp").Value = dv.CurrentRow.Cells["col_jp"].Value.ToString();
                        doc.Variables.FormVariables.Item("size_width").Value = dv.CurrentRow.Cells["size_width"].Value.ToString();
                        doc.Variables.FormVariables.Item("price").Value = dv.CurrentRow.Cells["price"].Value.ToString();
                        doc.Variables.FormVariables.Item("comp_jp").Value = dv.CurrentRow.Cells["comp_jp"].Value.ToString();
                        doc.Variables.FormVariables.Item("address_jp").Value = dv.CurrentRow.Cells["address_jp"].Value.ToString();
                        doc.Variables.FormVariables.Item("url").Value = dv.CurrentRow.Cells["url"].Value.ToString();                        
                        doc.PrintDocument(Convert.ToInt16(dv.CurrentRow.Cells["qty"].Value));
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("出錯啦,原因如下:\n\r"+ex.Message,"出錯啦");
                }
                finally
                {
                    labApp.Documents.CloseAll(true);
                    labApp.Quit();//退出
                    labApp = null;
                    doc = null;
                    GC.Collect(0);
                }
                

            }
        }

        private void frmJP_CODESOFT_PT_Load(object sender, EventArgs e)
        {
            if (dv.SelectedRows.Count >0)
             lbStatus.Text = "總共"+dv.SelectedRows .Count .ToString ()+"行需要列印";
            else
             lbStatus.Text = "總共1行需要列印";
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}




相关推荐

感谢关注 Ithao123C#频道,ithao123.cn是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!

关键词:

文章点评:


精选专题

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。 Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。