使用BarTender打印的相关问题

使用BarTender打印的相关问题

一:使用方法:使用bartender提供的库,Seagull.BarTender.Print.dll,winfrom控件点击调用
二:代码如下:

    /// <summary>
    /// 
    /// </summary>
    /// <param name="datas">数据源</param>
    /// <param name="btwPath">标签路径</param>
    /// <param name="pirntName">打印机名</param>
    /// <param name="PrintNubmer">打印数量</param>
    
public void DoPrint(Dictionary<string,string> datas,string btwPath,string pirntName,int PrintNubmer = 1)
    {
    
        //1.初始化打印对象
        Engine btEngine = new Engine();
        bool isAlive = btEngine.IsAlive;
        btEngine.Start();
        var btwFilePath = $@"{btwPath}";

        //2.初始化标签模板
        LabelFormatDocument btFormat = btEngine.Documents.Open(btwFilePath);//这里是Bartender软件生成的模板文件,你需要先把模板文件做好。
        btFormat.PrintSetup.PrinterName = pirntName;
        btFormat.PrintSetup.IdenticalCopiesOfLabel = PrintNubmer; //打印份数
        Messages messages;
        int waitout = 10000; // 10秒 超时

        //3.处理数据对象

        //Dictionary<string, string> datas = new Dictionary<string, string>();
        //datas.Add("QTY", "0123");
        //datas.Add("BinCode", "MVO9876543210");
    
        if (btFormat.SubStrings.Count != 0)
        {
            //便利标签需要的数据
            foreach (var subItem in btFormat.SubStrings)
            {
                //判断数据源里有没有
                var data = datas.Where(x => x.Key == subItem.Name).ToList();
                if (data != null && data.Count != 0)
                {
                    subItem.Value = data.FirstOrDefault().Value;
                }
            }
        }

        Result nResult = btFormat.Print("标签打印软件", waitout, out messages);
    
        btFormat.PrintSetup.Cache.FlushInterval = CacheFlushInterval.PerSession;
        btFormat.Close(SaveOptions.DoNotSaveChanges);//不保存对打开模板的修改
        btEngine.Stop();
    }

三:调试过程中遇到的相关问题:
1.情况一:
1)报错内容:“versionxxx找不到引用”
2)问题原因:通常是dll文件出错,bartender版本不对等等,解决方式是重新找对的dll引用。
2.情况二:
1)报错内容:混合模式xxx”
2)问题原因:通常是.net版本更迭后出现的报错,解决方法为修改app.config文件。
3)备注:如果doprint方法和引用类型不在同一项目种,则引用doprint方法的项目也要修改app.config文件。

修改app.config文件内容如下:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
	<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C是最常用的编程语言之一,它由丹尼斯·里奇在20世纪70年代初在贝尔实验室开发。C具有广泛的应用领域,包括系统编程、嵌入式系统开发、游戏开发、应用软件开发等。 C语言具有简单、高效和可移植的特性。它的语法简洁明了,易于学习和理解,使得开发者能够快速地掌握和应用它。C语言的高效性使得它成为一种非常适合开发底层系统和性能敏感的应用的选择。此外,C语言还具有很强的可移植性,可以在不同的平台上运行,这对于跨平台应用开发来说非常重要。 C语言是现代编程语言的基础之一,它的设计和语法影响了之后许多编程语言的发展,包括C++、Java和C#等。学习C语言可以帮助开发者更好地理解和掌握其他编程语言。此外,C语言还提供了丰富的标准库,使得开发者可以方便地进行各种操作和功能的实现。 尽管C语言有许多优点,但它也存在一些限制。由于C语言是一种低级语言,开发者需要手动管理内存,这可能会导致内存泄漏和悬挂指针等问题。此外,C语言相对较底层,需要开发者自行处理许多底层的细节,这可能会增加开发的复杂性。 总结来说,C语言是一种强大而广泛应用的编程语言,具有简单、高效和可移植的特性。它为开发者提供了丰富的功能和灵活性,使得它成为许多领域首选的编程语言。尽管它也有一些限制,但C语言仍然是学习和掌握的重要编程语言之一。 ### 回答2: c 是英文字母表中的第三个字母,也是拉丁字母表中常见的一个字母。c的发音是/k/,它可以单独作为字母出现,也可以与其他字母组合成为词汇的一部分。 在数学中,c可以表示很多不同的值。如果代表一个常数,它可以表示光速,也就是约等于每秒30万公里。c也是复数域中的一个符号,表示复数单位1元素的平方根。 在计算机科学中,c是一种编程语言,由贝尔实验室的Dennis Ritchie在20世纪70年代开发。C语言是一种通用的编程语言,对于编写系统软件、嵌入式系统和各种应用程序都非常适用。 另外,c也可以表示一些概念,例如:c型人格特征,代表平易近人、友善和善良;在化学中,c代表摄氏度;在音乐领域,C调是一个常见的音调。 总的来说,c是一个非常常见的字母和符号,它在数学、计算机科学和其他领域中有着重要的意义。无论是代表常数、编程语言,还是代表不同的属性和单位,c都是我们日常生活中接触到的一个字母。 ### 回答3: c是一个比较通用的字母,既可以代表英语中的单词,也可以代表数字。在英语中,c常常用于表示一些常见的词汇,比如can、cat、car、city等。同时,在某些情况下,c还可以表示一些特定的词汇,比如courage(勇气)、communication(沟通)等。 此外,在数学中,c也常常用来表示数字,特别是罗马数字中的100。比如,C表示100,CC表示200,CD表示400等。另外,小写的c也可以表示十进制数中的百分之一,比如0.01。 除了单词和数字,c还有一些其他的用途。比如,在计算机科学中,c是一种编程语言的名称,这是一种很常见的高级编程语言,广泛用于开发各种应用程序。此外,c还是一种音符,在音乐中用来表示音高。同时,在物理中,c是光速(光在真空中传播的速度)的代号,约为每秒3×10^8米。 综上所述,c是一个多功能的字母,既可以表示英语中的一些常见词汇,也可以表示数字、音符、编程语言等。它的用途十分广泛,无论是在日常生活中还是在学术领域中,c都扮演着重要的角色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值