4个版本
0.2.1 | 2023年10月16日 |
---|---|
0.2.0 | 2023年10月16日 |
0.1.1 | 2023年9月23日 |
0.1.0 | 2023年9月23日 |
#20 in #barcode
每月62次下载
145KB
4K SLoC
PDF417条码生成器
适用于嵌入式应用程序(也适用于std)的无std和无分配PDF417编码器。此库根据规范实现了多个编码模式,用于数字、字符串和字节数据。您还可以自定义条码的渲染(大小、存储和反转),并支持截断PDF417和MicroPDF417。
用法
安装
pdf417 可在 crates.io 上找到
使用 cargo add 命令
cargo add pdf417
或在您的 Cargo.toml 中添加 crate
[dependencies]
pdf417 = "0"
生成PDF417
在您生成PDF417条码之前,应考虑以下因素:
- 条码的 容量(最大码字数)。
- 错误纠正的 级别(0-8)
- 条码的 尺寸(行数和列数)
以下是一个生成PDF417条码的无std和无分配示例
use pdf417::*;
const COLS: u8 = 3;
const ROWS: u8 = 5;
const WIDTH: usize = pdf417_width!(COLS);
const HEIGHT: usize = pdf417_height!(ROWS);
// High-level encoding
let mut input = [0u16; (ROWS * COLS) as usize];
let (level, _) = PDF417Encoder::new(&mut input, false)
.append_ascii("Hello, world!").fit_seal().unwrap();
// Rendering
let mut storage = [false; WIDTH * HEIGHT];
PDF417::new(&input, ROWS, COLS, level).render(&mut storage[..]);
如果您需要更大的条码,可以使用 pdf417_width 和 pdf417_height 宏来控制模块的大小(请参阅文档)。
数据段
您可以在单个条码上使用多个数据段(也称为编码模式)。可用的类型有:
- 数字:对44位以上数字的高效编码
- ASCII:对文本(字母数字+标点符号)的高效编码,支持非显示ASCII值,这些值作为原始字节编码。
- 字节:二进制数据作为字节
还有一个额外的 UTF-8 模式,允许使用ECI标识符和字节编码模式对UTF-8字符串进行编码(请注意,此编码比ASCII模式占用更多空间)。
请参阅
PDF417Encoder
结构体上的不同方法。
文档
更多文档可在 docs.rs 上找到。
贡献 & 反馈
如果您有任何反馈,请创建问题。如果您遇到任何错误或不受欢迎的行为,请创建问题。
此项目欢迎贡献,请随意提交您的pull请求!
许可
pdf417可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。
依赖关系
~275KB