标签打印
最近我们为dp2circulation增加了标签打印的功能,从此就不必再用以前的那个外挂的标签打印程序了。
用dp2circulation的主菜单“功能/标签打印窗”命令,可以打开一个标签打印窗。
标签打印窗内有两个属性页,一个是“标签文件”属性页,一个是“册记录”属性页。
这两个属性页代表了两种标签打印的方式。
在“标签文件”属性页中,用户可以通过指定标签文件来进行标签的打印。所谓标签文件,就是一种文本文件,内容为这个样子:
P621
3333
***
P621
3333
***
标签内容按行排列,标签之间间隔一个内容为“***”的行。
也就是说,不论用户通过什么方法创建出标签文件,在“标签文件”属性页中都可以把标签打印出来。
在“册记录”属性页中,用户可以通过指定册记录来进行标签打印。程序会自动从册记录或者其从属的书目记录中提取有关信息,创建为标签文件后进行打印。
“册记录”属性页中有一个记录列表,可以从外部文件中导入记录,也可以从实体查询窗中利用Windows剪贴板Paste过来记录。
下面介绍一下从实体查询窗paste记录到标签打印窗的记录列表的操作步骤:
1) 在实体查询窗中,根据业务要求检索出一批册记录。在记录列表上选定好要复制到Windows剪贴板中的行,点右鼠标键,在随后出现的上下文菜单中选“复制”命令;
2) 在标签打印窗中,切换到“册记录”属性页,在记录列表上点右鼠标键,在随后出现的上下文菜单中选“粘贴”命令,Windows剪贴板中的记录行便会出现在记录列表中;
~~~
标签定义文件:
标签打印窗的第一行,是标签定义文件名文字框,要想打印出标签,需要先创建好一个标签定义文件,然后在这里指定它的文件名。
标签定义文件是一个XML格式文件,可以用Windows的记事本创建。
下面是一个标签定义文件的内容范例:
<root>
<label width="200" height="200" paddings="50,50,0,0" font="Times New Roman, 30pt"/>
<page margins="100,100,100,100" />
<lineFormats>
<line font="Times New Roman, 20pt" align="right"/>
<line font="Times New Roman, 20pt" align="center"/>
</lineFormats>
</root>
其中,<label>元素定义了一个标签的尺寸。
height为一个标签的高度,width为一个标签的宽度,单位是1/100英寸。也就是说,100表示一英寸。一英寸等于2.54厘米。
paddings是一个标签内文字打印区域和标签边沿的距离,格式为
左边距,上边距, 右边距, 下边距
4个数字。
width和height定义了标签的尺寸,paddings是从里面扣除了边距后的内容打印区域。
font属性值配置了标签内的一般字体。之所以说“一般”,是还有别的地方可以配置字体,下面会谈到。如果在这里配置了字体而其他地方没有配置,那么标签内的几行文字都会采用这个字体。font属性值是用表意的方式来定义字体的尺寸和颜色等,例如,“Arial, 20pt” 代表字体名为"Arial",字体的高度为20pt。pt是1/72英寸的意思。
这里介绍一下font属性值的定义办法:
格式为:宋体, 9pt, style=Bold, Italic, Underline, Strikeout
第一部分为字体名,第二部分为字体高度,第三部分为字体风格。
字体高度可以有下列定义单位:world/px/pt/in/doc/mm。px为像素,在打印中因为打印机的dpi变化多端,用像素作为单位肯定是不好的;pt为1/72英寸;in为英寸;doc为1/100英寸;mm为毫米。
字体风格可以有下列类型:Bold为粗体;Italic为斜体;Underline为下划线;Strikeout为删除线。这些风格可以组合使用,例如:Bold, Italic表示粗体和斜体。
<page>元素定义了打印页面的一些特性。目前只有一个属性,margins,定义了页面纸张边沿空白区域的尺寸。格式为
左边距, 上边距, 右边距, 下边距
。单位和前面的<label>元素的width和height一样,都是1/100英寸。在配置margins的时候要注意,激光打印机的纸张一般边沿都有一个不可打印的区域,当然,我们希望制作标签纸的厂家已经考虑到这个情况,边上肯定会留有一定的空白余地,实际上只要打印到厂家模切的位置,就不会超过可打印区域。
<lineFormats>元素下配置了标签内容每一行的特殊属性。这个元素可以省略,如果省略,标签每行的打印就按照左对齐、缺省字体(<label>元素中font属性所定义的字体)来进行。
<lineFormats>元素内有若干<line>元素,每个元素对应标签内容的一行。也就是说,如果标签要打印出3行,希望每行都单独定义特性,那么这里就要有三个<line>元素。不过,<line>元素的个数可以少于标签中要打印的行数,没有被<line>元素定义的行,就按照缺省格式打印。
<line>元素里面有font和align两个属性。这里的font属性和前面介绍的值格式一样。align可以有"left" "center" "right"三种值。缺省为"left"。
标签定义文件创建好以后,可以用Windows记事本创建一个测试用的标签文件,里面含有若干个标签的文字,然后用标签打印窗的“打印预览”功能进行预览,在打印预览前,把窗口底部的“打印调试线”勾选上,这样就可以在预览窗看到所配置的尺寸情况,并对标签定义文件内的参数进行适当调整。
下面介绍一下预览窗内的调试线:最外面四个角落的绿色折线,是打印机可打印区域的最外围。我们知道,激光打印机一般不可能在纸张上全部区域都打印,外围总有一些部分是无法打印到的。外围一个绿色的粗线框,是标签定义文件中<page>元素margins属性定义的页面内容区域。若干个黑色的细线框子,是标签的总体区域,其尺寸由<label>元素的width和height属性定义,而在页面上具体要打印出几行几列标签,软件会根据页面内容区域和标签尺寸自动计算和排列。若干个红色的细线框子,是标签内的内容区域,由<label>元素的paddings属性定义。
~~~
标签打印窗可以单独使用,根据标签文件,或者根据册记录路径,打印出标签来。
此外,原来“册统计窗”中的“输出标签文本文件”统计方案(见 http://dp2003.com/dp2bbs/article.aspx?board=@__2&id=205 )最近也作了修改,如果用户在这个统计方案中增加一个成员文件label_def.xml,则这个统计方案能在结束的时候自动打开标签打印窗,这样就方便立即进行打印。不过,也仍可以继续采用原来的操作办法,先利用这个统计方案创建好一个标签文件,然后再去打开标签打印窗进行打印。
现在册统计窗中又新增加了一个统计方案,名为“打印标签”(下载地址为 http://dp2003.com/filews/getfile.aspx?username=dp2circulation&filename=projects%5c%e6%89%93%e5%8d%b0%e6%a0%87%e7%ad%be.projpack ),这个新的统计方案会在运行结束时直接打开标签打印窗,操作十分方便。不过需要注意的是,这个统计方案中包含的label_def.xml配置文件需要用户在使用前重新进行配置,才能适合本馆的特定标签尺寸。
在“打印标签”统计方案中修改label_def.xml文件内容的操作步骤:
1) 在册统计窗的左下角点“方案管理”按钮;
2) 在方案管理对话框的方案名列表中,双击“打印标签”名字;(如果没有这样的文字,说明你还没有下载和导入这个统计方案。请先导入后再用这里介绍的方法进行修改)
3) 在脚本代码管理对话框中,看“构成文件”列表,双击名为“label_def.xml”的名字。在随后打开的记事本窗口中即可进行修改。修改完成后不要忘记保存该文件。建议可以先在别处创建一个标签定义文件,然后利用标签打印窗进行调试,调试好了以后,再把其内容复制到本统计方案的label_def.xml文件中。
其实上述两个统计方案的功能,都已经可以被标签打印窗的“册记录”属性页中的打印功能加上实体查询窗所替代。如果是通过批次号进行标签打印,可以在实体查询窗中用批次号检索出册记录,然后paste到标签打印窗中进行打印。