View Categories

使用易标签Web打印系统API

准备工作

一.注册账号并激活 #

可以使用前端注册页面或调用API注册账号并激活。

使用前端注册页面注册账号并激活 #

  1. 打开易标签Web打印系统前端注册页面:
  2. 填写注册信息,包括用户名、密码、公司名、邮箱等。
  3. 点击注册按钮,完成账号注册。
  4. 系统将发送激活邮件到注册时填写的邮箱。进入邮箱,点击激活链接,完成账号激活。
  5. 登录易标签Web打印系统前端页面:https://api.yi-label.com/frontend/login.html
  6. 输入注册时使用的邮箱和密码,登录系统。
  7. 登录后,进入“用户中心”页面。获取 API认证令牌(auth_info)。后续调用易标签Web打印系统API时,需要在请求头中包含该认证令牌。

使用API注册账号并激活 #

  1. 调用易标签Web打印系统API接口:POST https://api.yi-label.com/api/v1/register
  2. 在请求体中包含注册信息,包括用户名、密码、公司名、邮箱等。
  3. 发送POST请求,接收注册结果。
  4. 注册成功后,系统将发送激活邮件到注册时填写的邮箱。进入邮箱,点击激活链接,完成账号激活。
  5. 调用登录接口:POST https://api.yi-label.com/api/v1/login
  6. 在请求体中包含登录信息,包括邮箱和密码。
  7. 发送POST请求,接收登录结果。
  8. 登录成功后,系统将返回一个包含 API认证令牌(auth_info)的响应体。后续调用易标签Web打印系统API时,需要在请求头中包含该认证令牌。

二.上传模板 #

可以使用前端页面或调用API上传标签模板文件。

使用前端页面上传模板 #

  1. 打开易标签Web打印系统前端页面:https://api.yi-label.com/frontend/template-upload.html
  2. 登录系统后,进入“模板管理”页面。
  3. 点击“上传模板”按钮,选择要上传的标签模板文件。
  4. 填写模板名称、描述等信息。
  5. 点击“上传”按钮,完成模板上传。
  6. 上传成功后,系统将返回一个包含模板ID(file_id)的响应体。后续打印标签时,需要使用该模板ID。

使用API上传模板 #

  1. 调用易标签Web打印系统API接口:POST https://api.yi-label.com/api/v1/upload
  2. 在请求头中添加认证令牌:Authorization: Bearer auth_info
  3. 在请求体中包含模板文件。
  4. 发送POST请求,接收上传结果。
  5. 上传成功后,系统将返回一个包含模板ID(file_id)的响应体。后续打印标签时,需要使用该模板ID。

三.打印标签 #

基于Web的标签打印系统,主要通过WebSocket与本地易标签打印服务进行通信,实现标签预览和打印功能。同时,程序还可通过API接口获取标签模板信息。

重要提示:web打印必须安装并启动 YiLabelWebPrintService.exe 服务,否则无法正常打印标签。

核心技术实现 #

1. WebSocket通信机制 #

程序使用立即执行函数(IIFE)封装了WebSocket通信模块,通过 ws://localhost:10606 连接本地易标签打印服务。该模块包含连接管理、数据发送、错误处理等功能,采用事件驱动模式处理服务端返回的数据。

(function (webyilabel) {
    var YiLabelMessage = { WebSocketInvalid: "无法连接易标签打印服务!请检查服务是否运行!" };
    var YiLabel = {
        //这里代码省略,详见示例文件......

    };
    YiLabel.CONNECT();
    setTimeout(YiLabel.GET_PRINTERS, 500);
    webyilabel.yiLabel = YiLabel; 
})(window);

2. 事件处理机制 #

程序定义了统一的事件处理函数,处理从WebSocket接收到的数据,根据不同的命令类型执行相应操作,如预览、获取打印机列表、打印完成通知和错误处理。

//web e-label事件处理
web_YiLabel.ON_DATA = function (strMsge) {
    var obj = JSON.parse(strMsge);
    switch (obj.CMD) {
        //这里代码省略,详见示例文件......
    }
};

提示:使用易标签软件制作模板,并使用API或者前端页面上传模板,获取模板ID。剩下就专注于打印数据生成,即可完成打印任务。

3. 打印数据生成 (generatePrintData函数) #

该函数是程序的核心功能之一,用于生成标签打印所需的数据。它定义了标签中包含的6个字段(产品名称、品牌、型号、二维码信息、描述和代码),并提供了3组示例数据。

function generatePrintData() {
    // 定义标签中的列名称,对应标签设计中的字段标识
    const cols = ["pname", "pbrands", "podel", "pqrcode", "pdescription", "pcode"];
    const vals = [
        // 第一个标签的数据
        ["智能手机Pro Max", // pname: 产品名称
         "科技先锋",         // pbrands: 产品品牌
         "型号A2023",         // podel: 产品型号
         "QRCODE123456789",   // pqrcode: 二维码信息
         "高性能智能手机,支持5G网络,超大容量电池", // pdescription: 产品描述
         "SPH-2023-001"       // pcode: 产品代码
        ],
        // 第二个标签的数据
        ["无线蓝牙耳机",      // pname: 产品名称
         "声音大师",         // pbrands: 产品品牌
         "型号B400",          // podel: 产品型号
         "QRCODE987654321",   // pqrcode: 二维码信息
         "主动降噪,长续航,舒适佩戴体验", // pdescription: 产品描述
         "HP-2023-002"        // pcode: 产品代码
        ],
        // 第三个标签的数据
        ["智能手表Series 5",   // pname: 产品名称
         "健康伴侣",         // pbrands: 产品品牌
         "型号W500",          // podel: 产品型号
         "QRCODE567890123",   // pqrcode: 二维码信息
         "全面健康监测,运动追踪,防水设计", // pdescription: 产品描述
         "SW-2023-003"        // pcode: 产品代码
        ]
    ];
    return { cols, vals };
}

更多generatePrintData 函数示例

4. 模板获取 (API调用) #

程序在页面加载完成后,通过Fetch API从远程服务器获取标签模板信息。它使用了Bearer认证方式,并指定了需要获取的字段列表。获取到数据后,程序会动态更新模板下拉选择框。

window.onload = function() {
    file_id = 55; // 替换为实际的file_id
    const apiUrl = 'https://api.yi-label.com/api/v1/file/' + file_id + '?fields=file_name,file_name12';
    const authorization = '*****-****-*****-*****'; // 实际使用中请通过安全方式获取此令牌
    
    fetch(apiUrl, {
        method: 'GET',
        headers: {
            'Authorization': `Bearer ${authorization}`,
            'Content-Type': 'application/json'
        }
    })
    .then(response => { /* 处理响应 */ })
    .then(data => {
        const selLabel = document.getElementById('selLabel');
        selLabel.innerHTML = '';
        const option = document.createElement('option');
        let fileName = '未知文件名';
        let fileName12 = 'default_value';
        
        try {
            const apiData = data.data || data;
            fileName = apiData.file_name || '未知文件名';
            fileName12 = apiData.file_name12 || 'default_value';
            document.getElementById('txtMsg').value = `获取的字段数据:\nfile_name: ${fileName}\nfile_name12: ${fileName12}`;
        } catch (e) { /* 错误处理 */ }
        option.value = fileName12;
        option.textContent = fileName;
        selLabel.appendChild(option);
    })
    .catch(error => { /* 异常处理 */ });
};

安全提示:以上代码示例中的认证令牌仅用于演示,实际使用中请通过安全方式管理认证信息。

更多API接口介绍易标签Web打印系统API文档

5. 预览和打印功能 #

程序实现了标签预览和打印功能,通过获取用户选择的打印机、模板和旋转角度,结合 generatePrintData 函数生成的数据,构建打印命令并通过WebSocket发送给本地打印服务。

函数 btn_Preview 和 btn_Print 分别对应预览和打印操作。

两个在线示例的模板下载:api_test_1.yixapi_test_2.yix

在线打印示例:打开示例后可右键查看完整代码


免费商用许可

本服务由易标签官方提供,支持标签模板可视化管理和API直接调用,可免费商用。

免费用户的使用须知:web打印的网页端必须在 footer 中添加 使用易标签打印服务的声明信息,并添加链接指向 (https://www.yi-label.com/b-s-web-print)

未添加声明信息的网页端,将被视侵权使用,可能会被限制访问或被追究法律责任。如需移除声明信息,请购买成为付费用户。

私有化部署

项目已开源:https://gitee.com/elable/Label-Template-Management-System

购买Web打印授权,请联系易标签客服。support@yi-label.com

滚动至顶部