上一篇说到条码的打印,主要是通过读取模板定义文件(XML文件),然后结合从数据库中读取的动态数据结合而产生条码。下面主要说一下如何设计这个条码模板。设计过程也很简单,只需要简单的拖拉即可。然后点击小箭头或右下角的命令,选择SaveToXmlFile,然后选择路径保存。

上面设计图产生的XML将会是以下的内容。

<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<Barcode LabelWidth="639">
<Image X="429" Y="52" Size="2268" Width="162" Height="108" BytesPerLine="24" ImageName="LOGO">
<ImageHex ID="1" HexString="mJ018h07Ch0FC0F8gW0FE1F8gW0FC3FCgW0FC3FCgW0F83F81EgU0783F83FgW03F07FgW01E0HF8gY0" />
<ImageHex ID="2" HexString="HF8gX01HFgY01HFh0FE04gX0FC3F8gW0307FCgY0HFCgN078K01H01HFCgM07HF8K0C01HFCgL01HFCL" />
<ImageHex ID="3" HexString="0601HF8gL07FCM0701HF8gK01HF8M0301HFgL03FEN0380FEgL07FCN01C078078gI0HF8N01EI03HFg" />
<ImageHex ID="4" HexString="I0HFO01EI0IF8gG01FEP0FH01IFCgG03FCP0F803IFCgG03FCP0F807IFEgG07F8P0FC07IFEgG0HFQ0" />
<ImageHex ID="5" HexString="FC0JFEgG0HFQ0FE0JFEg01FEQ0FE0JFCg03FCQ0FE0JFCg07F8Q0FE0JF8g07F8Q0HF07IF8g0HFR0HF" />
<ImageHex ID="6" HexString="07IFg01FER0HF03HFEg03FCQ01HFH0HF8g03FCQ01HFH038gG07F8Q03HFgK0HFR07HFgJ01FER07HFg" />
<ImageHex ID="7" HexString="J01FCR0IFgJ03FCQ01HFEgJ07F8Q03HFEgJ0HFR07HFEgI01FER0IFEgI03FCQ03IFCgI0HF8P01JFCg" />
<ImageHex ID="8" HexString="H01HFP07KF8gH03FCN07MFgI07F8M03MFEgI0HFM01NFCgH01FEM07NF8gH03FCL01OFgI07F8L07NFC" />
<ImageHex ID="9" HexString="gH01HFM0OF8gH01FEL03NFCgI03FCL07MF8gJ07F8L0LFgM0HFL01KFgM01HFL03JFgN01FEL03IFCgN" />
<ImageHex ID="10" HexString="03FEL07IFgO03FCL0IFCgO07FCL0IF8N0202H03U07FCK01IF0HF80FI0707H078J0JF8K07FCK03HFE" />
<ImageHex ID="11" HexString="7HF83FEJ01H078I07KFK07F8K03HF8IF87FEI0FI078H01HFCIFK07F8K07HF1HFE07HF03IFE679H03" />
<ImageHex ID="12" HexString="FCH03F8J07FCK07FE1HFH0IF01IFE679807FCH03F8J07FCK0HFE0EI0IF8K0679807FCH03F8J03FCK" />
<ImageHex ID="13" HexString="0HFCH0181IF8K0279807HF80HF8J03FEJ01HF801F81IF80F8FH078H0MFK03FEJ01HFH01F81IF807H" />
<ImageHex ID="14" HexString="FH078H0HF8O01HFJ03HFK01IF801FCL0FEQ0HFJ07FEH07FC1F9F8L078H0FC7IFEJ0407F8I07FE01I" />
<ImageHex ID="15" HexString="F1F0F80E4207HF80F9KF8I0403FCI0HFC01IF1F0F81E7BCIFC0F9KF8I0601HFH01HF801IF1F0F83C" />
<ImageHex ID="16" HexString="7BEIFC0F8O07H07F801HF8H0IF1F0F87878E7HFC0F8O07801FH03HFL01F0F878F8EK0F9F803FJ078" />
<ImageHex ID="17" HexString="K07HFL01F0F878F0EK0F9F803FJ07EK0HFEI09F81F0F878F0E03I0F9HF31F8I07FJ01HFCI09F31F0" />
<ImageHex ID="18" HexString="F87CF3E078H0F9IFDF8I07F8I07HFCH019F79F0F83EF3CE7B80F8IFCFJ03FEI0IF8H019E79F9F81E" />
<ImageHex ID="19" HexString="F38E7980F8O03HF803IF8H019E79IF8H0FH0E7B80F8H06L01NFI039E79IF8K0E7B80F801F38J01NF" />
<ImageHex ID="20" HexString="I039E79IF80HFEH07801F0FBF3EK0MFEI079E79IF81IF807801F0F3F3EK07LFCI079E79IF03IFCJ0" />
<ImageHex ID="21" HexString="3F0H3F38K07LFCI079E79IF03IF8J03FH03FM03LF8I079F78IF01IF0IF07FQ01LFJ079F38HFEK01I" />
<ImageHex ID="22" HexString="FC7F07IFCL0KFEJ039F307FEI0101IFC7E3KF8K07JFCJ031EH03FCI0F01IFC7E3KF8K01JF8L0EI07" />
<ImageHex ID="23" HexString="J06H0BHF03C1KFM07HFEM06V08H01EO01HF8h08nG0" />
</Image>
<Eng_Num_Label Type="Fix" LabelDefine_ZPLII="^FO514,24^ADN,13,10^FDHeXieWu^FS" LabelDefine_EPL2="A514,24,0,2,1,1,N,&quot;HeXieWu&quot;" />
<Eng_Num_Label Type="Fix" LabelDefine_ZPLII="^FO387,176^BY2^BCN,40,Y,N,N,N^FDBarCode^FS" LabelDefine_EPL2="B387,176,0,1,2,2,40,B,&quot;BarCode&quot;" />
<Cht_Label X="429" Y="24" Size="23" Rate="1" Rotate="0" Text="首先" />
</Barcode>

打印出来的效果如下图

大家可以看一下,后续如果此标签需要,可以只修改这个XML的内容便可,下面讲一下这个控件的使用方法。

首先注册printbarcdoe.dll,然后在工程中引入ITBarcode.dll,将ChineseLabel, JapaneseLabel, EnglishNumericLabel, BoxAndLine, ImageLabel, ZPLCommandText, BarcodeTester, 将它们分别加入到Form中即可,在ChineseLabel中: CharacterSize为字符大小, ChineseText为中文字符串, Rate为放大倍数, RotateDegrees为转角.

  1. JapaneseLabel: 只能在支持Unicode的Windows中使用. 其中: JapaneseText为日文字符串, 其它与ChineseText相同.
  2. EnglishNumericLabel中: LabelType为:BarcodeLabel表示条形码, TextLabel表示英文或数字文本. TextSource: 文本的内容有两种: FIX表示固定文本, SQL表示打印时才确定. 如果文本内容不固定, 要指定DataField. 如果为固定的文本内容, 由LabelText指定. 还可以指定Label的Font: LabelFont, 和倍率: LabelScale. 对于Barcode, 可以指定其高度: BarcodeHeight, Barcode的宽度: BarcodeModuleWidth. 其它内容选择Default.
  3. BoxAndLine: 用来打印 Line和Box
  4. ImageLabel: 用来打印bmp文件, 只能打印单色的bmp文件.
  5. ZPLCommandText为输入以上没有包括的其它打印命令.
  6. BarcodeTester用来测试各控件的位置是否合适并保存为XML文件. 其中PrintBarcode用来测试Barcode, 可选的打印语言有: ZPLII和EPL2. SaveToXmlFile将设计好的标贴保存为XML文件. 打印标贴时使用这个XML文件做为标贴的定义. 在测试时, 如果要从Database中取数据, 要设定SqlText为SQL语句.还有就是生成字库和发送字库的。这主要是用在打印中文字上。

具体打印代码可以参考上一篇示例代码。

这个可以应付大部分企业的要求。 但仍有其局限性,如中文字无法加粗,EPL不能打QRCode(其实我没找到EPL如何打QRCode.)

不知道各位是如何在程序中实现条码的打印的呢?还有没有更简便的?

如有疑问可以提出,对本文的DLL有兴趣的,可以留下邮箱。

C# 标签(条码)的打印与设计(二)的更多相关文章

  1. C# 标签(条码)的打印与设计(一)

    C# 标签(条码)的打印与设计(一) C# 标签(条码)的打印与设计(二) 总结:自定义设计条码器.

  2. C#程序调用CodeSoft预先设计好的标签模块实现打印功能

    if (this.tbSetLabel.Text.Trim() == "") { MessageBox.Show("请先 Enter 选择标签模板文件!", & ...

  3. C# 标签(条码)

    C# 标签(条码) 上一篇说到条码的打印,主要是通过读取模板定义文件(XML文件),然后结合从数据库中读取的动态数据结合而产生条码.下面主要说一下如何设计这个条码模板.设计过程也很简单,只需要简单的拖 ...

  4. JavaScript 框架设计(二)

    JavaScript 高级框架设计 (二) 上一篇,JavaScript高级框架设计(一)我们 实现了对tag标签的选择 下来我们实现对id的选择,即id选择器. 我们将上一篇的get命名为getTa ...

  5. 进阶篇:3.9)3d打印件设计

    本章目的:了解3d打印,购买3d打印机. 1.3d打印基础知识: 现在主流的3d打印技术有4种:①FDM:②SLA:③SLS:④3DP.具体如下: ①熔融沉积造型(Fused deposition m ...

  6. 游戏UI框架设计(二) : 最简版本设计

    游戏UI框架设计(二) --最简版本设计 为降低难度决定先讲解一个最简版本,阐述UI框架的核心设计理念.这里先定义三个核心功能: 1:UI窗体的自动加载功能. 2:缓存UI窗体. 3:窗体生命周期(状 ...

  7. Redis缓存项目应用架构设计二

    一.概述 由于架构设计一里面如果多平台公用相同Key的缓存更改配置后需要多平台上传最新的缓存配置文件来更新,比较麻烦,更新了架构设计二实现了缓存配置的集中管理,不过这样有有了过于中心化的问题,后续在看 ...

  8. Java秒杀简单设计二:数据库表和Dao层设计

    Java秒杀简单设计二:数据库表Dao层设计 上一篇中搭建springboot项目环境和设计数据库表  https://www.cnblogs.com/taiguyiba/p/9791431.html ...

  9. C#打印模板设计,E店宝打印模板设置,winfrom打印模板设计,DevExpress.XtraReports.UI.XRTable 表格代码生成。

    一.打印效果 二.代码编辑 1 .table1 : table控件的Name: 2.label33 :label控件 实现绑定[外部平台单号]的控件: 3.label32:绑定[E店宝订单编号](S开 ...

随机推荐

  1. Executor

    一.为什么需要Executor?为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制.他们都在java.util.concurrent包中,是JDK并发包的核 ...

  2. centos7 PDI(Kettle)安装

    kettle介绍 PDI(Kettle)是一种开源的 ETL 解决方案,书中介绍了如何使用PDI来实现数据的剖析.清洗.校验.抽取.转换.加载等各类常见的ETL类工作. 除了ODS/DW类比较大型的应 ...

  3. **PHP转义Json里的特殊字符的函数

    http://www.banghui.org/11332.html 在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON.数据中有个字段叫 content,里面保存了文 ...

  4. ASP.NET Identity 修改表名和主键类型

    public class UserLogin : IdentityUserLogin<Guid> { } public class UserRole : IdentityUserRole& ...

  5. 使用require.js编写模块化JS

    layout: post title: 使用requirejs编写模块化代码 category: javascript date: 2016-10-22 00:00:00 tags: javascri ...

  6. 【51nod】1149 Pi的递推式

    题解 我们把这个函数的递归形式画成一张图,会发现答案是到每个出度为0的点的路径的方案数 这个可以用组合数算 记录一下P[i]为i减几次PI减到4以内 如果P[i + 1] > P[i],那么转向 ...

  7. Hadoop自定义类型处理手机上网日志

    job提交源码分析 在eclipse中的写的代码如何提交作业到JobTracker中的哪?(1)在eclipse中调用的job.waitForCompletion(true)实际上执行如下方法 con ...

  8. jquery实现checkbox的单选和全选

    一.思路 全选:判断“全选”checkbox的状态,如果选中则把tbody下所有的checkbox选中,反之 单选:主要是判断有没有全选,如果不是选中状态就把全选的checkbox状态设置为false ...

  9. ODBC在注册表中的位置

    增加一个oracle的odbc regedit打开注册表 64位 :HKEY_LOCAL_MACHINE -> SOFTWARE -> 32位: HKEY_LOCAL_MACHINE -& ...

  10. 20169211《Linux内核原理与分析》 第十周作业

    一.Linux内核之进程地址空间学习总结 Linux内核除了要管理物理内存还需要管理虚拟内存.用户进程的地址空间就是虚拟内存的一部分.每个用户进程都独有一个地址空间.由于是虚拟化的内存,所以从每个进程 ...