【Python_Zebra斑马打印机编程学习笔记(三)】解决ZPL指令无法显示中文的问题

解决ZPL指令无法显示中文的问题

    • 解决ZPL指令无法显示中文的问题
    • 前言
    • 一、问题描述
    • 二、字符集、码表文件、字库文件
      • 1、字符集
      • 2、码表文件
      • 3、字库文件
    • 三、两种设置中文字体的方式
    • 1、通过设置字符集、码表文件、字库文件改变默认字体
    • 2、通过^CF指令设置标准字体名称改变默认字体

解决ZPL指令无法显示中文的问题

前言

本文介绍如何解决 ZPL 指令无法显示中文的问题,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。

一、问题描述

在 Labelary Online ZPL Viewer 上对编写的 zpl 文档预览时发现当标贴中又需要打印中文时,会出现乱码,如下图所示:
在这里插入图片描述
ZPL为:

^XA
^FO50,50 ^ADN30,30^FD标贴:Label^FS
^XZ

二、字符集、码表文件、字库文件

在解决该显示中文问题前,需要明确几个概念:字符集、码表文件、字库文件

1、字符集

可以理解为编码格式,ZPL 提供了各种国际字符字体:美国、英国、荷兰、丹麦等,遵循国际字符的ISO标准。
在 ZPL 语言中用 ^CI charset, src1, dest1, src2, dest2, ... 指令更改字符集
在这里插入图片描述

指令字符编码
0USA1 (开机初始化设置)
1美国2
2英国
3荷兰
4丹麦/挪威
5瑞典/芬兰
6德国
7法国1
8法国2
9意大利
10西斑牙
11其它
12日本
13IBM 850码
15Shift-JIS,日本字库的曲线字库
28Unicode (UTF-8 编码)

要选取中文编码,常用的字符集为28,Unicode 字符集,ZPL 指令为:^CI28

2、码表文件

码表文件,即字符编码文件,当设置完字符集后,需要选择对应的字符编码文件;
注意:当设置为 Unicode 编码时,不需要设置码表文件;当使用 ANSI 编码时必须配置码表文件。

编码说明:

编码说明
ANSI 编码双字节内码,2个字节=1个文字
ASCII 编码单字节内码,1个字节=1个文字
Unicode 编码3个+字节=1个文字
UTF-8 编码对 Unicode 进行“压缩”

在 ZPL 语言中用 ^SE path 指令更改码表文件,如^SEE:GB18030.DAT^FS
其中,E: 为默认存储位置,大多数机器都默认存储在E盘;
存储盘符说明:

存储盘符说明
RDRAM
BPCMCIA Card
EFlash Memory

常用的中文码表有 :GB.DAT、GB8BIT.DAT、GB2312.DAT、GB18030.DAT;

注意:在 Labelary Online ZPL Viewer 中无法设置码表文件。
在这里插入图片描述

3、字库文件

也就是字体文件,字库文件后缀为 FNT 或 TTF ,字库文件需要自行下载,可以在 斑马的打印机官网 上获取;
在 ZPL 语言中用 ^CW fontName, path 指令更改字体文件,如^CW1,R:MYFONT.FNT,其中 1 为定义的字体标识名称。
自定义标识名称时不能使用 ZPL 标准的字体名称 (A, B, C, D, E, F, G, H, P, Q, R, S, T, U, V, 0)
在这里插入图片描述
如果从斑马打印机中获取打印机的字体呢?
在打印机面板上选择工具->打印信息->字体->打印
即可得到下面的字体清单:
在这里插入图片描述

三、两种设置中文字体的方式

1、通过设置字符集、码表文件、字库文件改变默认字体

  1. 设置字符集:^CI28
  2. 设置码表文件:^SEE:GB18030.DAT^FS
  3. 设置字库文件: ^CWA,E:SIMSUN.FNT^FS
    注意:设置 Unicode 编码时,只需要字库文件即可

完整ZPL代码:

^XA
^CI28
^SEE:GB18030.DAT^FS
^CWA,E:SIMSUN.FNT^FS
^FO30,30^FD标贴Label^FS
^XZ

注意:上述代码无法在 Labelary Online ZPL Viewer 中实现预览

2、通过^CF指令设置标准字体名称改变默认字体

想在 Labelary Online ZPL Viewer 还有另一种方式,即通过 ^CF 的标准字体名称来设置字体
在 ZPL 语言中用 ^CF fontName, height, width 指令设置字体、字体高度、字体宽度
ZPL 提供了一些标准的字体名称,如 A, B, C, D, E, F, G, H, P, Q, R, S, T, U, V, 0
Labelary 也有特定的标准字体名称,如J, L, N;其中 J 为中文字体名称;
在设置字体前,也需要设置字符集,也就是字体编码。

`^XA
^CI28
^CFJ,30,30
^FO50,50^FD标贴Label^FS
^XZ`

预览得到的结果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2814619.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

计讯物联5G RedCap网关TG463化繁为简,推动5G赋能千行百业

5G RedCap,全称为Reduced Capability,即在5G的基础上,对部分功能进行化繁为简后形成的新技术标准,故又称轻量化5G。作为高性价比下的精简技术,5G RedCap技术具备成本低、低功耗、兼顾5G等特点,能够在确保应…

ai电话机器人真的有那么好用吗?不需要神话它各版本搭建

如果您在互联网上搜索“电话机器人”,您会发现各种各样的电话机器人品牌,但功能描述,操作背景等等都会给您几乎相同的感受。无非就是代替人工打电话然后大规模的外拨电话,对目标客户的有效筛选等等。我们来看看机器人还不好用&…

论文设计任务书学习文档|基于Java的超市管理系统的设计与实现

文章目录 论文(设计)题目:基于Java的超市管理系统的设计与实现1、论文(设计)的主要任务及目标2、论文(设计)的主要内容3、论文(设计)的基本要求4、进度安排论文(设计)题目:基于Java的超市管理系统的设计与实现 1、论文(设计)的主要任务及目标 基于Java的超市管…

搭建sql-labs-master

环境:win10 解压sql-labs-master靶场文件,会提示有重复,直接覆盖就好。 将sql-labs-master文件拖到phpstudy/www目录下 打开浏览器访问“本机ip/sql-labs-master或localhost/sql-labs-master或127.0.0.1/sql-labs-master” 页面底部就是此靶…

Swagger接口文档管理工具

Swagger 1、Swagger1.1 swagger介绍1.2 项目集成swagger流程1.3 项目集成swagger 2、knife4j2.1 knife4j介绍2.2 项目集成knife4j 1、Swagger 1.1 swagger介绍 官网:https://swagger.io/ Swagger 是一个规范和完整的Web API框架,用于生成、描述、调用和…

docker-mysql:5.7安装

1、下载mysql:5.7镜像 [rootlocalhost ~]# docker search mysql (某个XXX镜像名字) [rootlocalhost ~]# docker pull mysql:5.7 按装之前查看一下是否按装过mysql。如果安装过会占用3306端口。 [rootlocalhost ~]# ps -ef | grep mysql 2、简单的安装 [rootlocalhost ~]# d…

uniapp小程序uView自定义tabbar

两年没接触小程序,又重新拾请来 前言 工具:HBuilder X 3.99版本 微信开发者工具 1.06 语言:vue2 uView 一、创建项目 先使用HBuilder X工具创建一个空白uni-app项目 uviewTest 二、安装和配置 HBuilder X找到工具-》插件安装-》插件市场 u…

SAP CAP(Cloud Application Programming)开发框架概述

CAP是什么 SAP云应用编程模型(CAP)是一个用于构建企业级应用的编程框架。它引导开发人员沿着经过验证的最佳实践的“黄金路径”以及丰富的开箱即用解决方案来构建应用。 与过度专注于技术细节相反,基于CAP的项目主要通过关注快速的业务实现而…

【appium】App类型、页面元素|UiAutomator与appium|App元素定位

目录 一、App前端基础知识 1、App类型划分 2、App类型对比 3、App页面元素 App页面元素分为布局和控件两种 常见布局: 常见控件:定位软件:appium和sdk自带的uiautomatorviewer都可以定位 二、App元素定位 1、id定位 2、text定位 3…

CGI程序与ShellShock漏洞

CGI是什么? CGI(通用网关接口,Common Gateway Interface)程序是一种用于在Web服务器上执行动态内容的技术。与服务器上普通的后端代码相比,CGI程序有几个区别: 执行环境: CGI程序在服务器上作为…

Keras 3.0发布:全面拥抱 PyTorch!

Keras 3.0 介绍 https://keras.io/keras_3/ Keras 3.0 升级是对 Keras 的全面重写,引入了一系列令人振奋的新特性,为深度学习领域带来了全新的可能性。 多框架支持 Keras 3.0 的最大亮点之一是支持多框架。Keras 3 实现了完整的 Keras API,…

2.27数据结构

1.链队 //link_que.c #include "link_que.h"//创建链队 Q_p create_que() {Q_p q (Q_p)malloc(sizeof(Q));if(qNULL){printf("空间申请失败\n");return NULL;}node_p L(node_p)malloc(sizeof(node));if(LNULL){printf("申请空间失败\n");return…

分布式存储 ZBS 的 RoCE 技术支持与大数据应用场景性能评测

作者:深耕行业的 SmartX 金融团队 闫海涛 在《解决 SAN 交换机“卡脖子”并升级存储架构?一文解析 RoCE 与相关存储方案趋势》文章中,我们分析了如何利用支持 RoCE 技术的分布式存储,同步实现 IT 基础架构的信创转型与架构升级&a…

【架构笔记1】剃刀思维-如无必要,勿增实体

欢迎来到文思源想的架构空间,前段时间博主做了一个工作经历复盘,10年开发路,走了不少弯路,也算积累了不少软件开发、架构设计的经验和心得,确实有必要好好盘一盘,作为个人的总结,同时也留给有缘…

Django项目使用vue打包前端页面使用教程

一、vue打包: 一般使用 npm run build 进行打包,打包完成后会生成一个dist文件夹 二、修改vue.config.js配置 vue.config..js配置里面增加: assetsDir: static 三、修改Django项目 将Django的static文件夹删除,移动di…

【Go 快速入门】协程 | 通道 | select 多路复用 | sync 包

文章目录 前言协程goroutine 调度使用 goroutine 通道无缓冲通道有缓冲通道单向通道 select 多路复用syncsync.WaitGroupsync.Mutexsync.RWMutexsync.Oncesync.Map 项目代码地址:05-GoroutineChannelSync 前言 Go 1.22 版本于不久前推出,更新的新特性可…

雾锁王国服务器配置怎么选择?阿里云和腾讯云

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

Firefox Focus,一个 “专注“ 的浏览器

近期才开始使用 Firefox Focus,虽然使用频率其实并不高,基本上只有想到了才去用,但每次使用的体验都很不错。 Firefox Focus 这款浏览器大约在 2015 年首次发布,不同于一般版本的 Firefox,它主打“自动删除浏览记录”…

Python请求示例获取淘宝商品详情数据API接口,item_get-获得淘宝商品详情(按关键词搜索商品列表)

请求示例,API接口接入Anzexi58 item_get-获得淘宝商品详情 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥WeChat18305163218api_nameString是API接口名称(包括在请求地址中&am…

阅读笔记——《GANFuzz: A GAN-based industrial network protocol fuzzing framework》

【参考文献】Hu Z, Shi J, Huang Y H, et al. GANFuzz: a GAN-based industrial network protocol fuzzing framework[C]//Proceedings of the 15th ACM International Conference on Computing Frontiers. 2018: 138-145.【注】本文仅为作者个人学习笔记,如有冒犯&…