红皮书-1.0打印模板技术新一代云ERP解决方案第2页目录第一章前言.11.总体介绍..12.快速入门..3第二章基本概念..71.打印模板..72.打印变量..73.打印数据源..94.固定行、固定列.105.向下扩展和动态列.106.固定行的单元格变量的扩展..107.动态区域和固定区域.118.分页..129.打印场景..13第三章模板编辑器的使用..141.打印模板编辑器.142.单元格数据格式.153.单元格内容的折行.204.在模板中使用图片.215.打印图章(公章).256.条形码..27新一代云ERP解决方案第3页7.页面设置..288.页码设置..349.单元格变量的连接.3910.快速小计合计.3911.功能节点模板的管理.40第四章模式化应用..421.普通分页场景.422.强制分页场景.453.凭证分页场景.494.工资条分页场景.525.卡片分页场景.556.动态列的应用.587.联应用..618.合并打印..639.多子表打印..6510.批量打印应用.7011.EXCEL导出.7111.1Excel导出功能的调用方式..7111.2Excel导出设置.7212.PDF导出.7313.HTML导出.7414.打印设置..74新一代云ERP解决方案第4页第五章公式的应用..781.本页小计(_SUBTOTAL_)公式..782.合计(_TOTAL_)公式.803.红字(_REDWORD_)公式..814.其它非常用的打印特有公式..824.1行号(_rowno_公式).824.2行数(_rowcount_)公式.824.3金额空格(_space_)公式..824.4中文金额空格(_cnspace_)公式.824.5日期空格(_datespace_)公式.824.6中文日期空格(_datecnspace_)公式..824.7变量扩展(_expandvar_)公式..834.8获得历史审批人(_auditname_)公式.834.9去除千分位(_clearthmark_)公式.834.10取首元素(_pop_)公式.834.11打印公式与U8cloud系统公式的嵌套使用..835.修改显示格式的公式.845.1单元格内容对齐方式.845.2单元格背景色(_bgcolor_)公式.845.3字体颜色(_fontcolor_)公式.845.4字体(_fontfamily_)公式.855.5字体大小(_fontsize_)公式.85新一代云ERP解决方案第5页5.6字体风格(_fontstyle_)公式..855.7文字下划线(_fontunderline_)公式..855.8条件格式..865.9组合格式..865.10在格式公式中使用null.866.公式的综合使用.87第六章基于U8cloud打印的二次开发..891.UI工厂:快速有效地实现打印.892.一个二次开发范例.933.打印监听器..954.直接打印..95第七章常见问题解答..971.出现打印问题,如何迅速地定位问题..972.本页小计公式每页都显示相同的值,为什么?.993.EXCEL导出时,是否还会发生内存溢出现象?导出效率如何?.994.如何进行双面打印..1005.批量打印是否可预览?打印时是否可选择页码范围..1006.如何模拟测试打印的效果..101第八章U8cloud1.0打印模块新特性.102新一代云ERP解决方案第1页第一章前言1.总体介绍假设有一张凭证需要打印出来,打印效果如下,应如何实现?如果把打印机想象成一张白板的话,打印,就是在白板上做绘制。上面的这张凭证,可以很容易地绘制出来。但是,当客户想要调整“收款凭证”这四个字的位置,改变它的字体,或是在下面的表格中增加金额列,是否必须修改打印程序?另外每张凭证的摘要数据、会计科目数据都是不一样的,如何用统一的打印程序将不同的数据打印出来?解决这个问题需要做到:1)可以配置字体、颜色、文本的打印位置、表格的行列等等,这满足了客户对于显示的个性化要求,2)在配置的时候,能把数据进行某种抽象,起到象征作用。实际打印时,抽象化的数据被赋予真实的值。U8cloud系统的打印模板,就是采用这种思路设计出来的。上面的这张凭证的打印模板如下图:新一代云ERP解决方案第2页可以看到,打印模板是一个表格,其基本元素是单元格。对于单元格,可以定义字体、颜色、边框、文本对齐方式;对于行,可以定义行高、插入行、删除行;对于列,可以定义列宽、插入列、删除列。这些功能使得凭证的外观可方便灵活地配置。那如何进行数据的抽象呢?我们需要看看打印模板编辑器的全貌:上面打印模板编辑器的右侧,有一个列表,列出了“凭证类别名称”、“制单日期”、“摘要”等在左侧表格以粉色背景出现的内容,这个列表里面的值,就是对数据的抽象,被称为数据源变量。因此,模板信息,既包括了显示的样式,又包括了数据的抽象。它足以适应个性化的显示和动态的数据。最后一个问题是,如何赋真实的值给变量。上面的“凭证类别名称”、“摘要”等变量的真实的值来自于要打印的凭证,因此需要把要打印的凭证的指定信息取出来赋予给打印变量,实现这个过程,应该采用了下面的流程:新一代云ERP解决方案第3页左边的凭证代表财务中的凭证对象,它包含了真正的业务信息,中间的数据源是打印的标准取数接口。开发人员应从凭证中取得打印模板要使用的变量的数据,放到数据源里,打印模板从数据源接口取得变量的真实的值,填充到模板中。2.快速入门第一节利用一个实际的例子,介绍了U8cloud打印的设计思路,这一节,将继续结合上面的实例,对设计思路做更加深入的讲解,帮助读者快速入门。完成实例中凭证的打印,分了两个步骤:第一步是将最终的效果抽象成一个模型,在打印模板中定义出来,第二步是创建数据源,通过该数据源能取到打印模板引用的变量的值。第一步工作由开发人员或实施顾问完成,第二步工作由开发人员完成。开发人员如何创建数据源?打印模板提供了IDataSource接口,该接口的方法如下:packagenc.ui.pub.print;publicinterfaceIDataSource{//返回数据源中所有的变量表达式publicjava.lang.String[]getAllDataItemExpress();//返回数据源中所有的变量名publicjava.lang.String[]getAllDataItemNames();//根据变量的表达式,取得变量的真实的值publicjava.lang.String[]getItemValuesByExpress(StringitemExpress);//如果某变量的值都是数字型的,返回truepublicbooleanisNumber(StringitemExpress);//取的节点编号,推荐不实现publicjava.lang.StringgetModuleName();新一代云ERP解决方案第4页//取得变量依赖的其他变量,推荐不实现publicjava.lang.String[]getDependentItemExpressByExpress(StringitemExpress);}针对实例中的数据,可以简单地创建一个模拟的数据源(简单起见,未列出所有变量,只是示范性地实现凭证类别名称、制单日期、摘要、借方本币四个变量),比如:publicclassMyTestDataSourceimplementsIDataSource{//返回数据源中所有的变量表达式publicjava.lang.String[]getAllDataItemExpress(){returnnewString[]{“vouchertypename”,”dbilldate”,”summary”,”debitmny”};}//返回数据源中所有的变量名publicjava.lang.String[]getAllDataItemNames(){returnnewString[]{“凭证类别名称”,”制单日期”,”摘要”,”借方本币”};}//根据变量的表达式,取得变量的真实的值publicjava.lang.String[]getItemValuesByExpress(StringitemExpress){if(itemExpress.equals(“vouchertypename”)){returnnewString[]{“收款凭证”};}elseif(itemExpress.equals(“dbilldate”)){returnnewString[]{“2005-12-10”};}elseif(itemExpress.equals(“summary”)){returnnewString[]{“收款,客户1”,“收款,客户2”,“收款,客户3”,“收款,客户4”,“收款,客户5”}}elseif(itemExpress.equals(“debitmny”)){returnnewString[]{“”,””,””,””,”1000”};}returnnull;}//如果某变量的值都是数字型的,返回true新一代云ERP解决方案第5页publicbooleanisNumber(StringitemExpress){//借方本币是数字if(itemExpress.equals(“debitmny”)){returntrue;}returnfalse;}//取的节点编号,可不实现publicjava.lang.StringgetModuleName(){returnnull;}//取得变量依赖的其他变量,推荐不实现publicjava.lang.String[]getDependentItemExpressByExpress(StringitemExpress){returnnull;}}有了打印模板,有了数据源,打印工作的所有准备活动都已完毕,只差一点——调用打印程序,完成打印。U8cloud打印程序的统一入口类是nc.ui.pub.print.PrintEntry,下面介绍如何调用PrintEntry。PrintEntrype=newPrintEntry(当前窗口对象,newMyTestDataSource());//设置打印模板ID的查询条件pe.setTemplateID(公司,节点编号,用户,业务类型);//如果分配了多个打印模板,可选择一个模板pe.selectTemplate();//开始打印pe.print();//也可以先预览,再在预览界面打印//pe.preview();至此,整个工作才全部结束。不过,客户对打印的要求,并不像上例中这么简单,比如:观察实例的模板,可以看到不同的行具有不同的背景颜色,其中只有第5行是白色背景,其他都是藏青色背景。而通过预览效果可以看到,第5行被动态向下扩展了(扩展行的行高列宽及单元格式都克隆了模板中的相应单元格),而其他行却没有扩展。为什么会这样?假设模板中第5行的变量有100个值,如果都要扩展的话,一页能打下吗,要是打不下,该如何分页,能否定义不同的分页方式?除了通过数据源取数,还有什么取数方式,可否定义公式对数据源运算?要对一批凭证做批量打印,该怎么做?如果要把凭证输出到Excel中,新一代云ERP解决方案第6页该怎么做?有特殊的页码要求,该怎么配置?要把内容打印到特殊的纸张上,怎么定义纸型?要解答这些问题,需要对打印模板有更深入的了解。后面的内容,致力于以实例讲透各种高级功能。下一节,将对U8cloud打印的基本概念做详细的描述。新一代云ERP解决方案第7页第二章基本概念1.打印模板打印模板定义了打印模型和各种打印选项。使用者将打印模型建立在打印模板的表格中,每一个单元格都可以定义独立的字体、颜色、边框、高度宽度和绑定的变量。另外,打印模板还可以定义关于打印的一些页面设置,比如页码、页眉页脚、纸型等等。2.打印变量打印变量是对要打印的数据的抽象,打印变量通过拖拽方式从变量列表添加到模板中。在实际打印或预览时,用到的打印变量会被赋值。一共有三种类型的变量:数据源变量、自定义变量和系统变量。1.数据源变量从开发人员创建的数据源获取值。字符型数据源变量在模板编辑器中以粉色为背景,图片型数据源变量较为特殊,除了像字符型数据源变量一样将变量插入到单元格,还需要在单元格的属性设置对话框中将单元格内容类型设置为图像变量,这时图片型数据源变量在模板编辑器中的背景会变为红色。2.自定义变量新一代云ERP解决方案第8页间接地通过公式获取值。自定义变量通过公式编辑器定义,有两种使用公式的方式:1)对数据源变量定义运算公式,比如统计公式:合计、小计,数据格式公式:转换成中文、加空格等,格式公式:左对齐、字体颜色等,更多公式的使用可参照第三章“公式的应用”;2)从基本档案取数,它的值来自于U8cloud系统可访问的数据库的某个表的某字段值。自定义变量和字符型数据源变量一样,在模板编辑器的单元格以粉色为背景;用户可以通过“设置/自定义变量”菜单管理自定义变量,同时在自定义变量列表提供鼠标右键快捷菜单来增加、修改删除自定义变量。管理界面如下图所示:比如定义一个表示凭证数量的自定义变量,首先输入变量描述“凭证数量”,然后点击变量公式按钮在弹出的公式定义界面定义变量取值方式:新一代云ERP解决方案第9页3.系统变量它的值来源于系统预置的数据或当前客户端的信息,比如单位名称、日期、用户等,此外,在模板管理界面通过“上传图片”上传的图片也作为系统变量出现在“系统变量”列表中。3.打印数据源打印数据源是打印的取数接口,规定如何获取打印数据。目前提供IDataSource、IDataSource2、IExDataSource三个接口。其继承关系如下:IDataSourceIDataSource2IExDataSourceIDataSource是最基本的数据源接口,此接口支持字符串格式(String)的打印数据,如果需要打印的数据为数字、时间等格式,可先转化为字符串。新一代云ERP解决方案第10页IDataSource2是凭证打印专用数据源接口,可以设置分录条数。IExDataSource可以用于传入除String外的其他数据类型数据,主要用于传入图片。更详细用法可参照第四章“如何在打印模板中嵌入图片”一节。4.固定行、固定列在模板中,背景颜色为藏青色的行是固定行,背景颜色为藏青色的列是固定列。“固定”的意思不是指位置的固定,而是指它们在每一页都会显示。比如单据的表头表尾信息、单据表体的标题。因此,固定行指的是这一行的单元格定义的内容在每一页都会打印,固定列指的是这一列的单元格在每一页都会打印。注意:对于一页纸打印多张表的情况,比如强制分页和凭证分页场景,固定行在每张表中都会打印。5.向下扩展和动态列如果某个变量具有多个值,在打印的时候,它们会为每个值复制打印模板中自身的单元格(以获得相同的显示属性),将每个值单独放入,这就是单元格的扩展。(也只有当该单元格绑定的变量具有多个值时单元格才会扩展)。例如,在上一节的实例中,第5行进行了扩展。而现代人的阅读顺序是从左到右,从上到下,因此扩展方向要么向右,要么向下。在打印模板中,往单元格中置入一个变量,默认的扩展方向是向下,当把一列设置成动态列时,这一列的所有单元格才变为向右扩展。6.固定行的单元格变量的扩展固定行上单元格的变量若有多个值,不会像非固定行那样向下扩展。固定行在每页都会显示,它默认在每页都显示第一个值。但是,在某些场景中(凭证分页和工资条分页),根据页码次序选择变量的值。在上一节的实例中,第3行是固定行,其模板内容为:在第一页,这一行的预览内容为:新一代云ERP解决方案第11页第二页,预览内容为:数据源中,voucher91变量有两个值,第一页选择了第一个值,第二页选择了第二个值。7.动态区域和固定区域为了支持更复杂的模板定义,提出了区域概念。区域为一些相邻行的集合,类似于动态行固定行,区域分为动态区域和固定区域。固定区域指每一页都显示的区域,固定区域不分页。动态区域参与分页,逐页显示直至全部内容显示完。区域内有自己的动态行和固定行,但没有页眉页脚,可设置自己的分页场景(见模式化应用章),区域独立分页。若存在多个区域,可设置区域间的相对位置,类似于word中节的概念,下一个区域可以紧挨这上个区域显示,也可以新起一页。选中多行,右键菜单进行区域设置。新一代云ERP解决方案第12页详细的区域设置可设置分页场景、是否固定区域和从新的一页开始。区域的使用效果可参见模式化应用章的多子表打印节。下图为一个定义了四个区域的模板:8.分页与分页关系最紧密的因素是“纸张大小”,也就是纸型。当纵向的内容高度超过了纸张的高度,就会自动分页(纵向分成多页,向下),当横向的内容宽度超过了纸张的宽度,也会自动分页(横向分成多页,向右)。除了这种自动分页方式,有些场景中还需要强制性地分页,理由很多:比如满足特定格式的套打纸张,比如固定的合同要求,等等。在上一节的凭证打印实新一代云ERP解决方案第13页例中,模板中的非固定行(第5行)每页最多扩展5行,这是因为该模板用于凭证套打,纸制的凭证本身就已打好了表格。因此,U8cloud打印必须支持自动分页和强制性地分页。9.打印场景U8cloud打印目前分成五种场景:普通分页场景、强制分页场景、凭证分页场景、工资条场景、卡片分页场景。场景名称分页模式固定行变量如何选择特点普通分页自动分页每页都选择第一个值强制分页强制性地分页每页(表)都选择第一个值可选”自动填充空行”,”一页打多张凭证”凭证分页强制性地分页根据页(表)码次序选择值可选”自动填充空行”,”一页打多张凭证”工资条分页自动分页根据工资条次序选择值自动折行,一页可打多条卡片分页自动分页根据卡片次序选择值在“模式化应用”章中,会详细介绍这五种场景,在这里需要强调的是,这五种场景的区别绝不仅仅是分页模式。新一代云ERP解决方案第14页第三章模板编辑器的使用1.打印模板编辑器通过以上章节,我们已经对打印模板编辑器有了整体上的了解,本节更加详细介绍一下模板编辑器的使用。上图是一个运输申请单的打印模板,从图中可以清晰的看出,模板编辑器分为菜单栏、工具栏、编辑栏、标尺、编辑区、状态栏、变量区几个部分。其中工具栏、编辑栏、标尺、状态栏都可以通过“视图”菜单控制是否显示。模板采用类似于Excel方式进行编辑,以单元格为单位,单元格可以合并、拆分;在编辑区提供四种右键快捷菜单:选中单个单元格可以粘贴复制删除单元格内容并设置单元格格式,单元格格式对话框如下图,在此对话框可以设置单元格的对齐、字体、边框、背景、Excel导出数字格式,单元格内容类型,其中更多关于Excel导出数字格式的信息可参照第二章“模式化应用”中“Excel导出”节;选中多个单元格可以合并拆分,选中行可以设置行高、动态行等,选中列可以设置列宽、固定列等;菜单栏中的“表格”菜单项也提供了相似的功能。标尺以毫米为单位,方便模板的测量绘制。模板编辑中做的操作可以通过“编辑”菜单项的“撤销”“重做”操作进行恢复。右侧为模板可以使用的变量区,包括数据源变量、自定义变量和系统变量。新一代云ERP解决方案第15页数据源变量无法编辑,自定义变量界面中可以通过右键快捷菜单增删改,系统变量无法编辑。在模板中引用变量有两种方式,一种可以通过拖拽,从右面变量列表中拖拽一个变量放到编辑区中的某个单元格,另一种通过两次点击,鼠标点击一个变量,然后点击某个单元格。双击一个含有变量的单元格,会弹出单元格内容编辑器,可在此界面中给单元格增加文本常量、增加多个变量并设置各个常量变量之间的顺序,关于单元格内容编辑器的更多内容可参看“&是什么意思”一节。2.单元格数据格式Excel中可以设置单元格的数字格式,比如金额、分数等,便于统计、排序。相应的,打印模板也提供了单元格数据类型设置功能,导出到Excel后,单元格会具有相应的数字格式。若要设置单元格导出到Excel中的数字格式,首先选中单元格,在“单元格设置\数字”对话框中选择数字类型,可选的类型包括:常规、数值、货币、日期、时间、百分比、分数、自定义。数值类型可设置小数位数,是否使用千分位以及负数的样式 正常:比如-100显示为-100 红字:比如-100显示为100新一代云ERP解决方案第16页 负号红字:比如-100显示为-100 括号:比如-100显示为(100) 括号红字:比如-100显示为(100)货币格式可设置小数位数,货币符号,和负数的显示样式,具体样式参见数值格式。新一代云ERP解决方案第17页日期格式可以设置日期显示为长时间和短时间格式。时间格式可设置的时间显示为长时间和短时间,若要同时显示时间和日期,可使用日期格式。新一代云ERP解决方案第18页百分比、分数和科学技术格式可以设置小数位数。自定义格式通过直接输入格式串来定义excel导出格式。格式字符串的定义方式如下:新一代云ERP解决方案第19页下面分别介绍各种格式:1、常规:单元格内容为字符串,非数字2、数值:一般数字的表示,比如定义小数位数、是否显示千分位等。常用格式如下: -0-–整数 -0.00-–小数位数两位,三位则三个0,依次类推 -#,##0-–带千分位分隔符“,”的整数 -#,##0.00-–带千分位分隔符“,”的两位小数 -(#,##0_);[Red](#,##0)-–红字千分位整数 -(#,##0.00_);[Red](#,##0.00)-–红字千分位两位小数3、货币:一般货币的表示。 -($#,##0_);($#,##0)-–“$”前缀的千分位货币 -($#,##0_);[Red]($#,##0)--“$”前缀的红字千分位货币 -($#,##0.00);($#,##0.00)--“$”前缀的千分位两位小数货币 -($#,##0.00_);[Red]($#,##0.00)--“$”前缀的红字千分位两位小数货币4、日期:一般日期格式的表示。 -m/d/yy-–形如8/18/1980格式日期 -d-mm-yy-–形如18-08-1980格式日期 -d-mm-–形如18-08格式日期 -mm-yy-–形如08-80格式日期5、时间:一般时间格式的表示,比如: -h:mm-–形如9:18格式日期 -h:mm:ss-–形如9:18:36格式日期百分比:一般百分数格式的表示,比如: -0%-–形如8%百分数 0.00%-形如8.00%百分数分数:一般分数格式的表示,比如: -#?/?- -#??/??-注意:由于打印模板使用开源项目POI导出Excel,而POI单元格数字格式定义不支持中文,所以以上各种数字格式中不能包含中文,否则会显示为乱码。更多格式定义请参阅http://office.microsoft.com/assistance/hfws.aspx?AssetID=HP051995002052&CTT=3&Origin=HP030641352052&Client=1新一代云ERP解决方案第20页3.单元格内容的折行在一些单元格中,希望把显示的内容分成多行显示,那么可在断行处加一个\n标志,如图所示:并进入该单元格的“单元格设置”对话框,选择“自动折行”,如图:预览效果为:如果单元格绑定了多个自定义变量,变量之间要求折行显示。那么按下面的格式定义公式:变量1+“\n”+变量2比如我们定义如下的自定义变量:productname+“\n”+productprice显示的结果会将两个变量的值换行显示,可能的显示结果如下:产品名称0¥10.33新一代云ERP解决方案第21页4.在模板中使用图片有些时候需要打印一些图片信息,比如客户通常需要在单据上显示公司Logo、员工的照片等。打印模板中的图片可以分为两类:静态图片和动态图片,静态图片为模板中的常量,不会发生变化,比如公司Logo;动态图片为模板中的变量,随着数据源中的图片变量变化,比如员工照片(不同员工有不同的照片)。对于在打印模板中使用静态图片,我们提供了上传图片功能,具体步骤如下:1、在某个功能节点的模板管理界面,点击“上传图片”按钮选择图片文件,并确定,这里可以同时上传多个图片。注意:打印模板中支持gif、jpg、jpeg、png格式图片,但不支持bmp格式。上传后图片在模板编辑器中会作为系统变量使用。如下图,我们上传了一张名为U8C.PNG的图片。新一代云ERP解决方案第22页在左侧列表的尾部,列举了服务器文件夹中可读取的图片文件,将选中的图片添加到右侧列表,点击确定后,所有模板的系统变量列表中,即可出现以此文件命名的变量,将该变量选定到模板中,图片自动显示出来,如下所示:新一代云ERP解决方案第23页预览效果为:在打印模板中使用动态图片类似于使用一般的变量,不同之处在于要实现不同的数据源接口,同时还需要设置一下图片变量所在单元格的内容类型为图片变量。具体步骤如下:第一步、实现IExDataSource数据源接口,IExDataSource继承自IDataSource接口,是特别为非String类型数据源变量作的扩展,它增加了两个方法方法一、publicjava.lang.Object[]getObjectByExpress(StringitemExpress);方法二、publicintgetObjectTypeByExpress(StringitemExpress);方法一根据变量名获得变量对应的对象,如果为图片则返回ImageIcon或新一代云ERP解决方案第24页Image对象数组;方法二返回变量的对象类型,有三个可取值:IExDataSource.STRING_TYPE(字符串类型,一般不需要使用,因为使用IDataSource数据源就可以满足)IExDataSource.IMAGE_TYPE(图片类型变量)IExDataSource.BIGTEXT_TYPE(大文本类型)。示例程序如下:publicObject[]getObjectByExpress(StringitemExpress){if(itemExpress.equals(-photo-)){Object[]pics=newObject[this.size];for(inti=0;i<pics.length;i++)pics[i]=newImageIcon(somepicpath);returnpics;}returnnull;}publicintgetObjectTypeByExpress(StringitemExpress){if(itemExpress.equals(-photo-))returnIExDataSource.IMAGE_TYPE;return0;}步骤二、在模板中使用此图片变量,过程和一般的数据源变量一样。步骤三、设置图片变量所在的单元格的单元格文本类型为图片变量。打开图片变量的单元格设置对话框的“类型”选项卡,设置文本类型为“图片变量”。新一代云ERP解决方案第25页这时,模板中图片变量字符背景会由粉红色变为红色,以区别于一般的字符串变量。这样,就完成了全部过程,从之前章节中的例子可以看到效果:不同的人员显示不同的照片。5.打印图章(公章)一些文档在打印时需要嵌进图章,这些图章不能作为正常的图片放进单元格中进行打印,因为它需要作为一个单独的图层绘制在文字之上,和其它的打印内容是一种“镶嵌”的关系。比如下面的打印结果所示:新一代云ERP解决方案第26页在打印模板中设置图章的过程为:点击下面的图标打开图章设置对话框,如图所示:图章打印是绝对定位的,所以需要设置图章绘制起始点的绝对位置(单位是新一代云ERP解决方案第27页像素),并可调整绘制的图片的长度宽度,另外,为避免图章层将文字覆盖,可设置图章的透明度;还有一个选项是设置图片的旋转角度,以使图章显示得更为真实。6.条形码打印模板支持各种格式的条形码,包括字符型、数字型和二维码,可以把模板上的具体变量转换为条形码。可在“单元格设置”中的“类型”中设置。新一代云ERP解决方案第28页单元格的内容类型设置为条形码后,模板中其内容会变为紫色。下图为条形码打印效果。7.页面设置“页面设置”用于定义打印页的常规属性,比如打印页的纸型、页边距、页眉页脚页码的位置等。U8cloud打印模块的页面设置包括了丰富的设置信息,包括三部分:1.纸型的选择:新一代云ERP解决方案第29页在纸型下拉框中选择需要的纸型,选定纸型的长度和宽度会在文本框中显示出来,并可选择纸张的方向。在下部有一个复选框,它表示是否只显示当前打印机支持的纸型,如果不勾选,纸型下拉框中会显示市场上所有存在的纸型。推荐“只显示当前打印机支持的纸型”,因为如果选择了打印机不支持的纸型,打印机很难打出符合预期的效果。另外,在复选框右侧,有一个打印机图标,点击该按钮可以选择打印机,纸型下拉框会根据选定的打印机来获得当前可用的纸型。有些时候,客户有一些特殊的纸张,因此需要自定义纸型.