Zint-条码生成软件-命令行调用-一维条码和二维条码

news2024/10/6 6:51:13

文章目录

    • 1.Zint简介
    • 2.术语
    • 3.命令行
      • 3.1.输入数据
      • 3.2.直接输出
      • 3.3.选择条码类型
      • 3.4.调整高度
      • 3.5.调整空白
      • 3.6.添加边界条和框
      • 3.7.颜色设置
      • 3.8.旋转
      • 3.9.调整图像尺寸
    • 4.界面
    • 5.总结

1.Zint简介

Zint项目旨在提供一个完整的跨平台开源条形码生成解决方案。该软件包目前包括一个基于Qt的GUI,一个命令行可执行文件和一个带有API的库,允许开发人员访问Zint的功能。希望Zint提供的解决方案能够为专业用户提供足够灵活的解决方案,同时尽可能多地处理从输入数据到条形码图像的轻松转换。
构成Zint项目主要组件的库目前能够以超过50种条形码符号(条形码类型)对数据进行编码,对于每种条形码符号,都可以从Unicode (UTF-8)或原始8位数据流转换数据。图像可以呈现为便携式网络图形(PNG)图像,Windows位图(BMP),图形交换格式(GIF), ZSoft Paintbrush图像(PCX),封装后脚本(EPS)或可缩放矢量图形(SVG)。有许多选项可用于设置输出图像的特征,包括图像的大小和颜色、符号中使用的纠错量,以及在光栅图像的情况下,设置图像的方向。

2.术语

本文档中使用的一些单词和短语是专门针对条形码的,因此简要解释一下以帮助理解:
symbol:符号是根据其中一种标准对数据进行编码的图像。这包括条形码(线性符号)以及在此程序中使用的表示数据的任何其他方法。
symbology:对数据进行编码以产生某种类型符号的方法。
linear:线性符号是由条形和空格组成的符号,大多数人一提到“条形码”就会联想到它。例子包括EAN。
stacked:堆叠符号由多个线性符号组成,一个放在另一个上面,它们一起保存消息,通常伴随着一些纠错数据。示例包括PDF417。
matrix:矩阵符号是基于(通常是正方形的)元素网格的符号。示例包括Data Matrix,但Maxicode和DotCode也被认为是矩阵符号。
x-dimension:符号的x维是最小元素的大小(通常是宽度)。对于线性符号来说,这是最小条的宽度。光栅图像中x维的默认大小是2像素。许多符号都有固定的宽高比,其中高度表示为x维的倍数。
composite:复合符号是由线性和堆叠的元素组成的符号。当前支持的消息由线性“主”消息组成,该消息在上面打印基于PDF417符号的堆叠组件。这些符号也有一个分隔符,用于分隔线性和堆叠组件。
GS-1 data:这是一种表示信息的结构化方式,它由数据“块”组成,每个数据块都以一个应用程序标识符开始。人工智能识别正在编码的信息类型。见附录C。
Reader Initialisation:一些符号允许包含一个特殊字符,该字符可以被扫描设备检测到,表示该数据用于编程或更改该设备的设置。这些数据通常不会传递给处理正常输入数据的软件。只有当您熟悉与扫描仪相关的编程代码时,才应该使用此功能。
ECI: ECI机制允许用通常只支持Latin-1字符的符号对多语言数据进行编码。例如,如果您需要编码西里尔字符,这可能很有用,但应谨慎使用,因为并非所有扫描仪都支持此方法。

3.命令行

介绍如何使用命令行前端程序对数据进行编码。给出的示例是针对Linux平台的,但Windows也有相同的选项,只是要记住包括可执行文件扩展名。例如:

zint.exe -d "This Text"

3.1.输入数据

这将编码文本“This text”。Zint将使用默认符号Code 128,并输出到当前目录下的默认文件out.png。或者,如果在构建Zint时不存在libpng,则默认输出文件将是out.gif。-d开关和输入数据应该始终是命令行输入的最后一个条目。在此之后给出的任何选项将被忽略。
输入到Zint的数据假定以Unicode (UTF-8)格式编码。如果您使用Unicode以外的方案编码超出7位ASCII集的字符,则需要设置相应的输入选项。可以在命令行中使用反斜杠(\)作为转义字符,并结合esc开关输入非打印字符。允许的字符如下表所示。

--------------------------------------------------------------------
Escape Character  |  ASCII Equivalent  |  Interpretation
--------------------------------------------------------------------
\0                |  0x00              |  Null
\E                |  0x04              |  End of Transmission
\a                |  0x07              |  Bell
\b                |  0x08              |  Backspace
\t                |  0x09              |  Horizontal Tab
\n                |  0x0A              |  Line Feed
\v                |  0x0B              |  Vertical Tab
\f                |  0x0C              |  Form Feed
\r                |  0x0D              |  Carriage Return
\e                |  0x1B              |  Escape
\G                |  0x1D              |  Group Selector
\R                |  0x1E              |  Record Selector
\xNN              |  0xNN              |  Any other 8-bit character
                  |                    |     where NN is hexadecimal
--------------------------------------------------------------------

可以使用-i开关直接从文件中读取输入数据,如下所示。除非选择了替代模式,否则假定输入文件是Unicode (UTF-8)格式的。该命令取代了-d开关的使用,并且应该是给出的最后一个选项。

zint -i ./somefile.txt

3.2.直接输出

可以使用-o开关将输出定向到默认文件以外的文件。例如:

zint -o here.png -d "This Text"

这将在文件here.png中绘制一个Code 128条形码。如果需要封装Post Script文件,只需在文件名后面加上.eps,其他支持的文件类型也可以这样:

zint -o there.eps -d "This Text"

3.3.选择条码类型

选择希望生成哪种类型的条形码(即使用哪种符号)可以在命令行中使用-b或–barcode=开关,后跟下表中的适当整数值。例如,要创建一个数据矩阵符号,你可以使用:

zint -o datamatrix.png -b 71 -d "Data to encode"

条码类型对应数值。

--------------------------------------------------------------------------------
数值            |  条码类型
--------------------------------------------------------------------------------
1              |  Code 11
2              |  Standard Code 2 of 5
3              |  Interleaved 2 of 5
4              |  Code 2 of 5 IATA
6              |  Code 2 of 5 Data Logic
7              |  Code 2 of 5 Industrial
8              |  Code 3 of 9 (Code 39)
9              |  Extended Code 3 of 9 (Code 39+)
13             |  EAN (Including EAN-8 and EAN-13)
14             |  EAN + Check Digit
16             |  GS1-128 (UCC.EAN-128)
18             |  Codabar
20             |  Code 128 (automatic subset switching)
21             |  Deutshe Post Leitcode
22             |  Deutshe Post Identcode
23             |  Code 16K
24             |  Code 49
25             |  Code 93
28             |  Flattermarken
29             |  GS1 DataBar-14
30             |  GS1 DataBar Limited
31             |  GS1 DataBar Extended
32             |  Telepen Alpha
34             |  UPC A
35             |  UPC A + Check Digit
37             |  UPC E
38             |  UPC E + Check Digit
40             |  PostNet
47             |  MSI Plessey
49             |  FIM
50             |  LOGMARS
51             |  Pharmacode One-Track
52             |  PZN
53             |  Pharmacode Two-Track
55             |  PDF417
56             |  PDF417 Truncated
57             |  Maxicode
58             |  QR Code
60             |  Code 128 (Subset B)
63             |  Australia Post Standard Customer
66             |  Australia Post Reply Paid
67             |  Australia Post Routing
68             |  Australia Post Redirection
69             |  ISBN (EAN-13 with verification stage)
70             |  Royal Mail 4 State (RM4SCC)
71             |  Data Matrix (ECC200)
72             |  EAN-14
73             |  Vehicle Identification Number (America)
74             |  Codablock-F
75             |  NVE-18
76             |  Japanese Postal Code
77             |  Korea Post
79             |  GS1 DataBar-14 Stacked
80             |  GS1 DataBar-14 Stacked Omnidirectional
81             |  GS1 DataBar Expanded Stacked
82             |  PLANET
84             |  MicroPDF417
85             |  USPS OneCode
86             |  Plessey Code
87             |  Telepen Numeric
89             |  ITF-14
90             |  Dutch Post KIX Code
92             |  Aztec Code
93             |  DAFT Code
97             |  Micro QR Code
98             |  HIBC Code 128
99             |  HIBC Code 39
102            |  HIBC Data Matrix ECC200
104            |  HIBC QR Code
106            |  HIBC PDF417
108            |  HIBC MicroPDF417
112            |  HIBC Aztec Code
115            |  DotCode
116            |  Han Xin (Chinese Sensible) Code
121            |  Royal Mail 4-state Mailmark
128            |  Aztec Runes
129            |  Code 32
130            |  Composite Symbol with EAN linear component
131            |  Composite Symbol with GS1-128 linear component
132            |  Composite Symbol with GS1 DataBar-14 linear component
133            |  Composite Symbol with GS1 DataBar Limited component
134            |  Composite Symbol with GS1 DataBar Extended component
135            |  Composite Symbol with UPC A linear component
136            |  Composite Symbol with UPC E linear component
137            |  Composite Symbol with GS1 DataBar-14 Stacked component
138            |  Composite Symbol with GS1 DataBar-14 Stacked Omnidirectional
               |     component
139            |  Composite Symbol with GS1 DataBar Expanded Stacked component
140            |  Channel Code
141            |  Code One
142            |  Grid Matrix
143            |  UPNQR (Univerzalnega Plačilnega Naloga QR)
145            |  Rectangular Micro QR Code (rMQR)
--------------------------------------------------------------------------------

3.4.调整高度

线性符号的高度可以使用–height开关进行调整。例如:

zint --height=100 -d "This Text"

这指定符号高度为符号x分辨率的100倍。

3.5.调整空白

可以使用-w开关更改生成的条形码左右的空白量。例如:

zint -w 10 -d "This Text"

这将指定空白宽度为符号x分辨率的10倍。

3.6.添加边界条和框

Zint允许使用选项–bind将符号与“边界条”绑定。如果扫描光束偏离符号的顶部或底部,这些条有助于防止误读符号,从而破坏扫描。Zint还可以使用–box选项在符号及其空格周围设置边框。ITF-14符号自动选择此选项。

边界或框的宽度可以使用–border开关指定。
例如:

zint --box --border=10 -d "This"

给出一个宽度为符号x分辨率10倍的方框。

3.7.颜色设置

符号的默认颜色是白色背景上的黑色符号。Zint允许您更改这一点。-r开关允许反转默认颜色,以便在黑色背景上显示白色符号。例如下面的命令:

zint -r -d "This"

给出了一个颠倒的128码符号。这对于大多数符号来说是不实用的,但是数据矩阵ECC200和阿兹特克代码符号规范允许黑白。

对于更具体的需求,可以使用–fg=和–bg=选项指定前景(墨水)和背景(纸张)颜色,后面跟着一个RRGGBB十六进制记数法的数字(与HTML中使用的系统相同)。例如下面的命令:

zint --fg=004700 -d "This"

将符号改为深绿色。

3.8.旋转

符号可以通过四个方向旋转,使用–rotate=选项,后面跟着旋转角度,如下所示。此选项仅适用于光栅图像(PNG, BMP, GIF和PCX)输出。

--rotate=0 (default)
--rotate=90
--rotate=180
--rotate=270

3.9.调整图像尺寸

可以使用–scale=选项加上默认x维的倍数来改变图像的比例。默认的x尺寸是2像素。例如,对于PNG图像,5的比例将使x维度增加到10像素。

4.界面

在这里插入图片描述

5.总结

Zint是一款非常好用的条码生成软件,可以非常方便的生成一维和二维条码,形式上可以生成矢量图形和栅格图像,非常方便集成和批处理。

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

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

相关文章

零拷贝是如何实现的

零拷贝是如何实现的 零拷贝(Zero-copy)是一种优化技术,用于在数据传输过程中减少数据的拷贝次数,从而提高数据传输的效率和性能。传统的数据传输涉及多次内存拷贝操作,而零拷贝通过减少或避免这些拷贝操作来实现性能优…

HDC.Cloud 2023|邂逅AI,华为云CodeArts铸就研发效能10倍提升

2023年7月7日-9日,华为开发者大会2023(Cloud)在东莞松山湖隆重举行。期间,华为云主办了以“AI‘邂逅’一站式软件开发,CodeArts以10倍效能“绘”企业应用远景”为主题的分论坛。 华为云PaaS服务产品部副部长汪维敏携一…

用户注册倒计时案例

代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </hea…

ORA-00845: MEMORY_TARGET not supported on this system

memory_target的值需要比tmpfs的小。 解决&#xff1a; vim /usr/local/oracle/admin/orcl/pfile/init.ora.6132023154657 强制加载init.ora.6132023154657文件启动数据库 SQL> startup force pfile/usr/local/oracle/admin/orcl/pfile/init.ora.6132023154657;

【原生基础篇】JavaScript中常用的数据输出方式解析

​ 在 JavaScript 中&#xff0c;一般使用如下几种方式进行数据的输出&#xff1a; JavaScript 基础到高级 Canvas游戏开发 原生JavaScipt案例合集 JavaScript DOM基础 1. 在浏览器的控制台输出 浏览器F12打开浏览器控制台(一般前端开发人员必备浏览器为谷歌浏览器&#xff0…

ArcGIS一张图的制作过程

来源&#xff1a;GIS荟 数据 首先&#xff0c;第一步是数据的准备和处理&#xff0c;这里没什么好说的。 使用的所有数据都是在网上下载的 OSM 数据。 第一步 主视觉 为了更好的说明该地图的完整操作过程&#xff0c;同时又要有条理、比较好理解&#xff0c;所以我采用拆分…

matlab处理数据

Matlab异常值处理https://blog.csdn.net/weixin_57345774/article/details/126965835?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22126965835%22%2C%22source%22%3A%22qq_53011270%22%7D&fromshareblogdetail 异常值识别和…

SAP从放弃到入门系列之WIP Batch(Work-in-Process)-Part2

文章目录 一、前言二、系统操作2.1 数据设置2.2 业务数据2.3 相关的NOTE&#xff1a;1473025 - FAQ: WIP 批次 三、其他 一、前言 这个测试验证的过程真的是很难受&#xff0c;由于资料太少&#xff0c;查到的SAP官方的文档也描述的非常粗略。因为我从一开始就是有目的的去验证…

性能测试工具 jmeter 录制脚本,传递 cookie,循环执行接口

目录 前言&#xff1a; 代理录制脚本 循环重复添加接口 登录并传递 cookie 给新建产品接口 循环执行脚本 前言&#xff1a; 在使用JMeter进行性能测试时&#xff0c;录制脚本是一种常用的方法。录制脚本可以帮助你捕获和重放用户与应用程序之间的交互&#xff0c;以模拟真…

【深度学习笔记】训练 / 验证 / 测试集

本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记&#xff0c;视频由网易云课堂与 deeplearning.ai 联合出品&#xff0c;主讲人是吴恩达 Andrew Ng 教授。感兴趣的网友可以观看网易云课堂的视频进行深入学习&#xff0c;视频的链接如下&#xff1a; 神经网络和…

基于CBAM-CNN卷积神经网络预测研究(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Linux SSH访问虚拟机失败 Restarting network (via systemctl)

访问SSH访问服务器连接失败,重启network 失败 Restarting network (via systemctl): Job for network.service failed because the control process exited with error code. See “systemctl status network.service” and “journalctl -xe” for details.关闭 NetworkManage…

mayavi 远程可视化

似乎最近总是在处理远程可视化的问题 首先应该像配置open3d一样完成x服务器的配置&#xff0c;这里给出我自己的链接。 这时候我们进行安装&#xff0c;给出官网链接 pip install mayavi pip install PyQt5不出意外的话&#xff0c;将会出意外。 会提示如下报错qt.qpa.plugi…

关于海外的应用商店优化策略

关于应用商店优化&#xff0c;我们可以通过投放应用广告&#xff0c;或者是遵循ASO的实践&#xff0c;来优化应用程序从而获得自然流量。 如果开始进行应用商店优化&#xff0c;我们需要准备一份可用于日常的ASO清单。 建立清晰的应用商店优化策略&#xff0c;研究并了解市场…

适用于电脑的 9 款最佳视频压缩器 | 压缩而不损失质量

如果您是视频编辑者或经常处理视频的人&#xff0c;您就会知道一个简单的 1 分钟高清视频会占用您的硬盘多大的空间。无论是在抖音、快手上上传视频&#xff0c;还是只是想在硬盘中保留视频文件的备份&#xff0c;您都需要一个具体的解决方案来压缩视频&#xff0c;而不会大幅降…

解决MAC IDEA终端每次都要source ~/.zshrc

安装nvm之后&#xff0c;发现每隔一段时间&#xff08;不清楚是新打开一个终端还是会定时刷新&#xff09;就要重新执行source ~/zshrc&#xff0c;才能执行nvm命令。找了一圈发现idea默认使用的shell是bash&#xff0c;将默认的shell改成zsh就可以&#xff0c;更改位置&#x…

PostgreSQL MVCC的弊端

数据库有很多种&#xff08;截至 2023 年 4 月有 897 个&#xff09;。面对如此多的数据库&#xff0c;很难知道该选择什么&#xff01;但有一个有趣的现象&#xff0c;互联网集体决定新应用程序的默认选择。在 2000 年代&#xff0c;传统观点选择 MySQL 是因为像 Google 和 Fa…

css 网站置灰功能

文章目录 filter 属性backdrop-filter 属性mix-blend-mode 属性css 变量低版本浏览器方案 filter 属性 html {filter: gray; /* 兼容 IE6-9 的滤镜 */filter: grayscale(.95); // 对图片进行灰度转换-webkit-filter: grayscale(.95); }backdrop-filter 属性 为一个元素后面区…

“AI+教育”:景联文科技高质量教育GPT题库助力教学创新

去年年底&#xff0c;OpenAI推出ChatGPT&#xff0c;掀起AI热潮&#xff0c;教育作为“AI”应用落地的关键场景&#xff0c;再次受到广泛关注。 “AI教育”的快速发展&#xff0c;是受到技术、需求和政策三重因素共同驱动的结果。 在技术方面&#xff0c;随着人工智能技术的不断…

Spring MVC 系列2 -- 创建连接、获取与输出

上个系列总结了关于Spring MVC 项目的一些基础 ,Spring MVC就是在Spring Boot的基础上引入了Spring Web依赖.接下来就进行总结一下Spring MVC项目的创建,连接,获取参数,输出响应. 目录 1. Spring MVC 创建和连接 1.1 创建Spring MVC 项目实现与浏览器互通 1.2 RequestMapping…