C# 调用Bartender实现打印并输出图片(使用域传值)

这几天遇到一个需求,标签打印完成并且要输出图片,以便实现追溯。

老规矩,先说下工具和环境。

首先,Bartender版本如下

其次,标签模板文件使用的是数据库字段赋值方式(这里就隐藏了一个坑)。

如果是使用具名数据源的话,那就好办。(后面也会附这种参数类型如何输出图片)

接下来看一下C#调用Bartender的打印代码

        private void Print()//打印标签,如果有错误则输出Bartender报出的错误信息
        {
            //_btFormat.PrintOut(false, false);
            BarTender.Messages btMessages;
            BarTender.BtPrintResult btResult;
            _btFormat.PrintSetup.IdenticalCopiesOfLabel = 1;
            _btFormat.PrintSetup.NumberSerializedLabels = 1;
            btResult = _btFormat.Print("", false, -1, out btMessages);
            BarTender.Messages btMessages2;
            _btFormat.ExportPrintPreviewToImage(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Test123.jpg", "jpg", BarTender.BtColors.btColors24Bit, 1500, 0,
                BarTender.BtSaveOptions.btDoNotSaveChanges, true, true, out btMessages2);

        }

■使用数据库的方式传参的话,必须要使用ExportPrintPreviewToImage来输出图片。如果是使用网上其他博客说的ExportToFile来输出图片的话,输出的图片里面的变量是不会变的(也就是不管你的数据库传值是什么,数出来的图片的内容都是模板的默认值,不会根据传入的参数改变而改变)。

ExportPrintPreviewToImage的第一个参数是输出的路径,第二个参数是文件名称,第三个参数是文件类型,第四个参数选择btColors24Bit,第五个参数是图片的大小,第六个参数是背景色(0是黑色),第七个参数是不保存变更,第八个参数是否包含边缘、第九个参数是否包含边框,第十个参数是输出参数。

下面是打印出来的样式。因为我的背景色用的是0,所以是黑色的。

■如果是使用具名数据源的话,那么就可以直接使用ExportToFile函数来输出图片。

    public static void LableToImage(string btFileName)
    {
        BarTender.Application btApp = new BarTender.Application();
        BarTender.Format _btFormat;
        BarTender.Messages btMessages;
 
        _btFormat = btApp.Formats.Open(btFileName);
        //传入参数赋值
        _btFormat.SetNamedSubStringValue("具名数据源参数名", "值");

        //打印
        _btFormat.PrintSetup.IdenticalCopiesOfLabel = 1;
        _btFormat.PrintSetup.NumberSerializedLabels = 1;
        _btFormat.Print("", false, -1, out btMessages);
        
        //输出图片
        _btFormat.ExportToFile("保存文件名", "jpg", BarTender.BtColors.btColors24Bit, BarTender.BtResolution.btResolutionPrinter, BarTender.BtSaveOptions.btSaveChanges);
        _btFormat.Close(BarTender.BtSaveOptions.btSaveChanges);
        btApp.Quit(BarTender.BtSaveOptions.btSaveChanges);
 
    }

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值