【发布时间】:2015-01-07 03:45:03
【问题描述】:
ZPL 是一种基于文本的标记语言,用于从专用打印机打印标签。 UPS 运输标签就是一个很好的例子。
标记语言相当原始。有模式命令可以设置一些状态值,但大部分语言是采用<command><parameters><data> 形式的单行语句。没有流量控制或嵌套。
我想编写一个渲染引擎来解释 ZPL 并渲染为图像。有几个项目已经在这条道路上开始了,但这些项目还不够完整,无法用于商业用途。
我的问题是:我需要学习什么才能编写出色的 <something> 来解析 ZPL 文档并将其转换为我可以执行的命令? (通过“执行”,我的意思是绘制。)
这是一个解析器吗?词法分析器?分词器?口译员?是否有一些编译器设计理论的子集是此类项目成功的最有效途径? ...那叫什么?
【问题讨论】:
-
只是好奇,但你能分享一下你需要这个的原因吗?我经常使用 ZPL,虽然这将是一个有趣的工具,但我不知道我是否会需要它。这将是一个有趣的项目!谢谢!
-
我们希望能够在 ZPL 中编写一次标记,然后使用该标记打印到任何介质:ZPL 打印机、激光打印机、屏幕图像。我见过一种产品承诺只写一次(在 C# 中)、导出任何内容、标记代码。但是,该库的 ZPL 输出非常冗长。这使得 ZPL 打印速度太慢而无法实用。
-
我想我迟到了,我也只是发表意见,但在我看来,不需要任何花哨的工具,因为 ZPL 只是一个没有嵌套的线性命令序列所有命令都以“^”或“~”字符开头,因此只需基本的正则表达式甚至 string.split("") 就足够了......
-
你好,我建议你看看这个项目,我认为它有一个非常高级的渲染。 github.com/BinaryKits/BinaryKits.Zpl
标签: c# parsing tokenize lex zpl