Bartender Http方式调用打印

1,659 阅读5分钟

 

1.Bartender下载安装

1.1 Bartender下载地址

BarTender中文版免费下载_BarTender 2016下载-BarTender中文网站

1.2 Bartender 申请30天免费试用

bartender 2021如何申请30天免费试用-BarTender中文网站

1.3 Bartender 安装

  1. 指定高级安装

    image-20211026095354429​编辑

  2. 选择Bartender Designer和Print Portal进行安装

    image-20211026095536795​编辑

  3. 之后的直接默认安装,下一步即可。

2.ClientPrintService模式配置和使用

ClientPrintService 模式为服务器-客户端模式,即:在一台电脑安装Bartender充当Bartender服务器,在需要进行打印的电脑安装ClientPrintService服务,将本地打印机共享给Bartender服务器,即可通过调用Bartender服务提供的接口,进行打印。

2.1 开启客户端打印模式

  1. 使用非IE浏览器,打开地址:http://localhost/Bartender/Browse,出现如下界面

    image-20211026100149778​编辑

  2. 点击管理设置,选择客户端打印Tab页

    1.勾选 启用客户端打印 填入名称,和打印路由器URL。打印路由器的URL中改成安装Bartender电脑的IP+端口的形式

    2.点击保存

    image-20211026100701208​编辑

2.2 客户端安装ClientPrintService服务

  1. 需要进行打印的电脑,访问http://ip:80/Bartender/Client/ClientPrintWizard

    该IP为安装Bartender软件的那台电脑的IP

    image-20211026101336584​编辑

  2. 访问上述地址后,会自动下载SeagullClientPrintServiceInstaller.exe软件,双击打开该软件,默认安装即可。

    该过程需要联网。

  3. SeagullClientPrintServiceInstaller软件安装完成后,会自动打开浏览器进入客户端的配置界面,地址为:http://localhost:5952/settings

    image-20211026101907621​编辑

  4. 你可以使用http://ip:80/Bartender/Client/ClientPrintWizard页面的自动配置也可以手动配置

    image-20211026102222038​编辑

  5. 配置完成后,会出现如下界面

    image-20211026102316686​编辑

  6. 至此,Bartender的服务端和客户均配置完成。

  7. 若第五步的状态不是已连接,则查看Bartender安装电脑上的Bartender服务和客户端电脑的BarTender Client Print Service 服务

    1.win+r 输入:services.msc

    2.找到Bartender服务器,确保所有的Bartender服务器均正在运行,若不在运行,手动启动,然后再次进行客户端配置界面,即可连接。

    image-20211026102837384​编辑

  8. 将本地打印机共享给Bartender 打印服务器

    http://127.0.0.1:5952/Settings页面,勾选需要调用Bartender服务进行打印的打印机后保存即可。

    image-20211026103305091​编辑

  9. 至此,客户端和打印机共享配置完成。

3.接口调用打印

  1. 打开http://192.168.1.68/Bartender/swagger/index.htmlswagger接口文档地址

    image-20211026103928020​编辑

  2. 获取打印机接口:http://192.168.1.68/Bartender/api/v1/printers

    该接口可以获取Bartender服务器可以调用的所有本地打印机和远程打印机

    本地打印机:是安装Bartender那台电脑上的打印机

    远程打印机:是通过客户端配置,共享给Bartender服务器的打印机

    image-20211026104302566​编辑

  3. 根据打印机名称获取打印机信息的接口:http://192.168.1.68/Bartender/api/v1/printers/{printName},该接口很简单,也不实用,不做赘述

  4. 获取模版库的接口:http://192.168.1.68/Bartender/api/v1/libraries

    该接口可以获取Bartender服务器上的模版库

    Bartender默认模板库有两个,一个在IIS目录下,另一个是Bartender Librarian

    默认使用IIS目录下的模板库,即接口请求的name为Templates的模板库

    image-20211026105418644​编辑

  5. 根据模版库ID可以获取到该模版库的信息以及该模版库中可以使用的Bartender模版http://192.168.1.68/Bartender/api/v1/libraries/{id}

    image-20211026105844042​编辑

  6. Templates模版库的默认位置在:C:\inetpub\wwwroot\BarTender\wwwroot\Templates目录下

  7. 将需要打印的Bartender 模版放在上述位置上,Bartender即可识别获取。(注:一般模版修改或新增,Bartender需要隔几分钟后才会获取最新的)

  8. http://192.168.1.68/Bartender/Browse页面可以浏览模版库中的所有模版

  9. post方式的打印接口:http://192.168.1.68/Bartender/api/v1/print,通过该接口即可调用打印机进行打印

    {
      "libraryID": "string", --模版库的ID
      "relativePath": "string",--模版的相对路径,例如:Automotive/AIAG/B-10/BMW.btw
      "absolutePath": "string",--模版的绝对路径,与相对路径二者选其一
      "documentPassword": "string",--文档密码:没有的不需要传,从参数中拿掉即可
      "printRequestID": "string",--打印请求ID,(一般不传,从参数中拿掉)
      "printer": "string",--打印机名称(这里的打印机名称应该为调用printers接口中获取的打印机名称)
      "startingPosition": 0,--起始位置(一般不传,从参数中拿掉)
      "copies": 0,--打印份数
      "serialNumbers": 0,--自增序列
      "namedDataSources": {
        "additionalProp1": "string"--传参(嵌入的数据的名称)
      },
      "dataEntryControls": {--不知道干啥的,可以不传
      }
    }
    

注:若ClientPrintService模式出现打印不出来的情况:

  1. 查看客户端的打印机是否正常打印
  2. 打印http://localhost:5952/settings设置界面,查看客户端与Bartender服务器的连接是否正常
  3. 查看安装Bartender电脑上的Bartender是否正常运行
  4. 查看客户端ClientPrintService 服务是否正常运行
  5. 若都正常运行,可以尝试重启ClientPrintService服务器重试;若还不行可以尝试重启Bartender服务器上的所有Bartender服务,若出现服务器无法重启的情况,请用Bartender安装包进行修复。

4.Integration Builder 配置(使用BTXML脚本)

4.1 BTXML脚本配置

  1. 打开Integration Builder

    image-20211026112213029​编辑

  2. 创建新的集成—>Web服务—>确定 后进入页面,修改服务名称和端口

    image-20211026112515774​编辑

  3. 输入数据:选择BTXML脚本

    ​编辑

  4. 打印文档:删除默认创建的打印文档,新增一个打印BTXML脚本,可修改该脚本名称:

    image-20211026113010917​编辑

  5. 预览,启动该服务

    image-20211026113228392​编辑

4.2 使用postman调用本地打印机进行测试

  1. URL:http:///Integration/MesPrint/Execute,将host改成IP

  2. 参数:

    <?xml version='1.0' encoding='utf-8'?>
    <XMLScript Version='2.0' Name='09232006_103601_Job1' ID='123'>
        <Command Name='Job1'>
            <Print>
                <!-- 模版路劲,可以是Templates的相对路径,也可以是绝对路劲 -->
                <Format>D:/BartenderIntegration/VCard.btw</Format>
                <PrintSetup>
                     <!-- 自增序列 -->
                    <NumberSerializedLabels>1</NumberSerializedLabels>
                     <!-- 打印份数 -->
                    <IdenticalCopiesOfLabel>1</IdenticalCopiesOfLabel>
                     <!-- 打印机名称(可以是本地打印机也可以是共享打印机) -->
                    <Printer>PDF</Printer>
                </PrintSetup>
                <!-- 嵌入式数据源的名称和值 -->
                <NamedSubString Name='cartonId'>
                    <Value>00000011</Value>
                </NamedSubString>
            </Print>
        </Command>
    </XMLScript>
    

    详细参数可参考Integration Builder 帮助文档

    image-20211026115027673​编辑

  3. postman调用测试:

    image-20211026114400602​编辑

4.3 调用共享打印机进行打印

  1. 将需要进行打印的打印机共享出来

    具体方法百度

  2. 在上述参数中,打印机参数改成共享打印机的名称和地址即可

4.4 若调用本地打印机可以打印,调用远程打印机报如下错误的话:

image-20211026115205731​编辑

请使用Bartender的自动化版本创建集成

4.5 测试完成后,即可将该打印服务部署一下即可。

注:若Integration Builder模式出现打印不出来的情况:

  1. 确认共享打印机是否正常打印
  2. 确认已部署的服务是否正常,可尝试重新部署该服务