打印实现机制及使用方法_第1页
打印实现机制及使用方法_第2页
打印实现机制及使用方法_第3页
打印实现机制及使用方法_第4页
打印实现机制及使用方法_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、打印实现机制及使用方法1 本项目使用的打印实现机制本系统的证照文书打印要求较高,不仅需要精确控制打印的效果,同时还需要完成打印模板的自定义(提供“所见即所得”的方式由最终用户来根据需求设计打印的格式)和客户端的打印机设置及页面设置。1.1 实现机制在权衡了各种Web应用打印方案之后,本系统将通过XML强大的自定义功能来自定义出我们需要的打印格式控制标签,在服务器端进行动态编码后通过WEB服务器传到客户端,然后在客户端进行格式解析,根据服务器端定义的打印格式从客户端直接控制打印机打印出我们需要的报表。如图:1.1.1 实现原理实现的原理就是要方便的解析出定义好的XML格式标记,解读出文件中标记的

2、参数定义,最后将这些信息还原成打印机输出的图形格式。为了能表达出复杂的报表样式,我们需要定义一些标记,在这些标记中附加上具体的样式信息,作用类似HTML的标签,而我们的解析程序就相当于IE浏览器,所不同的是IE将图形输出到屏幕,而我们是将图形输出到打印机,由于打印机相对于显示屏的特殊性(例如分页),因此我们不能直接采用网页浏览器的标签解析功能来打印,需要自己来做一个满足需要的"打印浏览器"。1.1.2 框架选择客户端打印控件的实现可以采用ActiveX控件、Java Applet、.NET framework的WinForm来实现。考虑以下优势,推荐采用WinForm来实现

3、:l 有很强大的打印控制功能。与操作系统兼容性高,同时具有.NET framework提供了强有力的支持。Java applet在这方面支持不太好,并且需要在客户端进行一定的设置。l 和IE兼容性高。同为Microsoft公司产品。Java applet在碰到一些特殊字体等情况下会出现问题。l 它不需要进行客户端注册。相对于ActiveX的一个大优点。l 比ActiveX安全性高。在.NET Common Language Runtime的控制之下运行。l 编写方便。Java applet受限制较多,会增加开发难度;而ActiveX开发周期较长且有版本问题。l 直接支持XML技术。1.1.3

4、安装及使用:客户端安装.NET 运行时环境;在页面中嵌入调用:<object classid="clsid:977B2235-D02A-40D5-B757-E8E6679DC02D" Width="100%" Height="100%" ID="Printcontrol1" codebase="Setup.Exe" ><PARAM NAME="SourceXml" VALUE=":8080/wzdjgl/repor

5、t.xml" ></object>其中参数SourceXml定义了XML的位置,可以使用类似e=1&id=2的格式。而print.jsp根据参数获取打印模板XML,同时获取数据库数据对此XML修改并输出一个新的XML。1.1.4 工作流程:通过在网页内嵌入打印控件,同时通过定义好的格式文件和数据库记录生成活动XML数据文件,打印控件读取此文件及其中的页面设置,在屏幕上分页打印其定义的格式及内容,用户可以进行御览、修改打印设置并最终打印。系统初始将按照总局提供格式完成打印格式文件的定义,用户在使用中可以进行自定义并保存方便以后使用。定义打印格式的同样调用打印控

6、件来进行 “所见即所得”的 设置。1.2 格式定义为了能控制打印的格式,我们定义了下列的格式标签,其中在命名上参考了HTML的命名办法,所以基本上熟悉HTML的都能明白标签的具体含义。如果有新的需求,也可以定义更多更精确的格式标签。在本系统的打印中,我们主要定义了文字、翻页、表格以及图片的控制标签,同时为了实现简单的报表格式(如饼图、柱状图等)扩展了线条、扇形、矩形等结构。而更复杂的效果可以先由其他系统转化为图形,然后在这里调用。以下的例子展示了其基本结构:1.2.1 文本: (text)l 使用场景:常用于单行文本的打印l 示例:<text fontsize="24"

7、; b="False" i="False" u="False" fontname="黑体" fontcolor="Black" x="204" y="101">企业名称预先核准通知书</text>l Attribute含义Attribute含义取值类型Fontsize字体大小整数 4-72B是否加粗Booean (true or false)I是否斜体Booean (true or false)U是否有下划线Booean (true or

8、 false)Fontname 字体名称String (系统字体名称)Fontcolor 颜色String(系统颜色)X起始横坐标整数Y起始横坐标整数1.2.2 多行文本: (mulitext)l 使用场景:常用于固定内容且使用默认行间距的段落l 示例:<mulitext fontsize="9" b="False" i="False" u="False" fontname="楷体_GB2312" fontcolor="Black" x="110"

9、y="894" width="600" spaces="0">企业设立登记后,企业登记机关应将本通知书原件存入企业档案。</mulitext>l Attribute含义Attribute含义取值类型Width打印宽度整数Spaces首行缩进空格数整数1.2.3 固定大小文本:(fixedsizetext)l 使用场景:常用于套打中大小固定而内容可变的区域l 示例:<fixedsizetext x="499" y="208" fontsize="18"

10、b="False" i="False" u="False" fontname="宋体" fontcolor="Black" width="300" height="100" spaces="0">这是一个固定大小的文本框,会根据宽度和高度和高度自动调节字体的大小 </fixedsizetext>l Attribute含义Attribute含义取值类型height打印高度整数1.2.4 组合而成的段落:(paragrap

11、h) l 使用场景:常用于段落中可变固定较多时l 示例: <paragraph fontsize="14" b="False" i="False" u="False" fontname="宋体" fontcolor="Black" x="101" y="200" width="600" spaces="4" split="1"> <label value=&q

12、uot;根据企业名称登记管理规定、企业名称登记管理实施办法等规定,同意预先核准下列 " /> <fillitem fontsize="14" b="True" i="False" u="False" fontname="宋体" fontcolor="Black">2</fillitem> <label value="个投资人出资,注册资本(金)" /> <fillitem fontsize=&quo

13、t;14" b="True" i="False" u="False" fontname="宋体" fontcolor="Black">200</fillitem> <label value="万元(人民币),住所设在 " /> <fillitem fontsize="14" b="True" i="False" u="False" fontname=&

14、quot;宋体" fontcolor="Black">浙江省丽水地区</fillitem> <label value="的企业名称为:" /> </paragraph>l Attribute含义Attribute含义取值类型Split 行间距倍数(如1倍行距)floatl ChildNode含义ChildNode含义内容Label 固定打印内容子项文本Fillitem 填充项需要描述字体的文本(可能加粗、下划等)1.2.5 表格:(paragraph) l 使用场景:多行表格(目前只考虑简单表格,复杂表

15、格可以通过嵌套完成,暂不实现)l 示例: <table x="103" y="439" width="500" bordercolor="Black" bordersize="0" CanChange="True"> <tr height="20"> <td fontsize="11" b="True" i="False" u="False" fo

16、ntname="宋体" fontcolor="Black" x="103" y="439" width="350" align="left">伊利集团</td> <td fontsize="11" b="True" i="False" u="False" fontname="宋体" fontcolor="Black" x="

17、453" y="439" width="75" align="center">100万元</td> <td fontsize="11" b="True" i="False" u="False" fontname="宋体" fontcolor="Black" x="528" y="439" width="75" align=&

18、quot;center">50%</td> </tr> <tr height="20"> <td fontsize="11" b="True" i="False" u="False" fontname="宋体" fontcolor="Black" x="103" y="459" width="350" align="left&qu

19、ot;>梦牛集团</td> <td fontsize="11" b="True" i="False" u="False" fontname="宋体" fontcolor="Black" x="453" y="459" width="75" align="center">100万元</td> <td fontsize="11" b=

20、"True" i="False" u="False" fontname="宋体" fontcolor="Black" x="528" y="459" width="75" align="center">50%</td> </tr>l Attribute含义Attribute含义取值类型bordercolor边框颜色系统颜色borderSize 边框宽度整数,0则不显示CanChange是

21、否根据内容计算并使用较合适的宽度、高度Boolean l ChildNode含义ChildNode含义内容tr表格行高度Td单元格对齐方式,宽度及文本使用内容1.2.6 图片:(printimg)l 使用场景:图片,如使用公章、复杂固定内容可以先保存成图片等l 示例: <printimg x="515" width="128" y="167" height="128" fixed="False" src="" />l Attribute含义Attribute含义取

22、值类型fixed是否固定大小,否则匹配图片的大小Boolean src图片源文件地址文件路径,可为httptransparence是否透明boolean1.2.7 线条:(printline)l 使用场景:报表(如:折线图 K线图)、分割线、特殊形状等l 示例: <printline x1="182" x2="382" y1="104" y2="104" linecolor="Red" linesize="2" />l Attribute含义Attribute含义

23、取值类型X1,X2线条起始点横坐标整数Y1,y2线条起始点纵坐标整数linecolor线条颜色系统颜色linesize线条宽度整数,0则不显示1.2.8 翻页:(暂未实现)l 使用场景:快速跳过页内剩余部分或跳过若干页。l 示例:<newpage pageNumber=”1”><newpage>l Attribute含义Attribute含义取值类型pageNumber跳过页数,1则为当前页面整数1.2.9 扇形:(暂未实现)l 使用场景:饼图等l 示例:红色部分50%<pie x="450" y="40" h="

24、300" w="300" preAngel ="0" curAngel="180" fillColor="red"><pen color="Black" Width ="6"></pen></pie>绿色部分25%<pie x="450" y="40" h="300" w="300" preAngel ="180" cu

25、rAngel="90" fillColor="green"><pen color="Black" Width ="6"></pen></pie>蓝色部分25%<pie x="450" y="40" h="300" w="300" preAngel ="270" curAngel="90" fillColor="blue">&

26、lt;pen color="Black" Width ="6"></pen></pie>l Attribute含义Attribute含义取值类型preAngel起始角度整数curAngel自身角度整数fillColor填充颜色系统颜色l ChildNode含义ChildNode含义内容pen边线颜色及线宽1.2.10 矩形:(暂未实现)l 使用场景:柱状图等l 示例:<rect x="450" y="40" h="300" w="300" ><pen color="Black" Width ="6"></pen></rect>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论