网页表格跨页打印.doc_第1页
网页表格跨页打印.doc_第2页
网页表格跨页打印.doc_第3页
全文预览已结束

下载本文档

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

文档简介

网页表格跨页打印 广东电台 邓永亮摘要:我在开发南方传媒集团办公网的时候,遇到网页表格跨页打印时,表格打印不完整的问题,通过分析研究,终于找到的一个好的办法,就是用Pdf输出打印,该方法为创建Web方式下的可打印文档提供了一个解决方案,对新闻采编系统、广告管理系统等同类系统的设计研究具有一定的参考价值。关键字:A、MVC、Pdf、表格打印、跨页。 怎样通过打印输出生成适当的纸媒页面呢?普通网页打印,表格打印超出一页,另起一页会出现不完整的表格边框。长时间来,这一直是一个课题。一、网络打印概述l B/S结构导致了Web应用程序中打印的特殊性。l 程序运行在浏览器中,打印机在本地,而文件可能在服务器上,导致了打印控制不是很灵活。二、典型技术办法分析对比1. IE直接打印 即直接调用IE中文件菜单中的打印方法来打印。 优点:方便快捷,客户端无需任何设置即可; 缺点:打印控制不是很灵活。如果直接调用。这种方式比较简单,也常用的打印方式,只需要将报表页面设计好,用户通过IE菜单中的打印功能完成打印。优点是简单,容易实现,缺点是不灵活,不能控制分页,不能控制好页眉和页脚。2. 客户端脚本方式打印客户端脚本分为VBScript、java script、JScript 几种脚本语言。在IE 下开发应用使用的语法为JScript 的语法,由于它和java script 几乎没有什么区别,所以也可以称其为java script(简写为JS)。一般情况下,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印。通过分析源文档的内容,可以生成打印目标文档。优点:客户端独立完成打印目标文档的生成,减轻服务器负荷;缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定。3. 导出到Excel,Word或PDF中去打印 可以在服务端或者客户端进行。这种方式需要将页面导出成Office文档或Pdf,最低的要求是客户端已经安装用以打开Word、Excel或Pdf文档的软件。这种方式可以通过水晶报表组件或其他一些第三方控件非常容易地实现。导出成Pdf形式后打印质量和效果都很好,导出成Word或Excel后用户可以自定义打印的内容和格式。 优点:使用这种方法,可适应性比较强,控制较好; 缺点:最低的要求是客户端已经安装用以打开Word、Excel或Pdf文档的软件。增加服务器负荷。三、在A MVC下导出到DPF的实现通过以上分析,结合南方传媒集团办公网建设的需求,我们最后决定使用第三方式。这也是最难实现的一种方式,软件从业者要提高效率的第一法门便是重用,我们应该充分利用最先进的组件,网上有一个叫Itextsharp的东西是用来绘制PDF的,可以免费使用而且开源。我用的是A mvc 1.0, 用其他编译工具的话大同小异。下面给出具体的实现方法,用.NET 创建一个controller,在controller下添加一个公文转Pdf的action ,名字为gw2pdf。代码如下:using iTextSharp;using iTextSharp.text;using iTextSharp.text.pdf; public ActionResult gw2pdf(int id) MemoryStream ms = new MemoryStream(); Document document = new Document(PageSize.A4, 1f, 1f,30f, 20f);TryPdfWriter writer = PdfWriter.GetInstance(document, ms);document.open();document.add(newParagraph(南方广播影视传媒集团 );/.省略部分不相干代码document.close();byte file = ms.ToArray();MemoryStream output = new MemoryStream();output.Write(file, 0, file.Length); output.Position = 0;return new FileStreamResult(output, application/pdf);catch(Exceptione)以上代码, 在A mvc 1.0的环境下,测试运行通过, 但经过全面测试,出现了一些问题,在此,列出三个大家也可能遇到、对大家比较有借鉴意义的问题与解决办法:1) 中文字体显示。进过测试,发现生成的PDF文件中的中文字符将不显示。改进办法:BaseFont bfChinese = BaseFont.CreateFont(C:WINDOWSFontssimsun.ttc,1, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font fontChinese = new Font(bfChinese, 12, Font.NORMAL, new Color(0, 0, 0);在上面的代码中设置了中文字体的显示,你只要使用下面的代码就可以把中文加到PDF中了document.add(newParagraph(公文稿纸 , fontChinese);2) 表格跨页。表格中单元格不会自动断行分页。如果本页显示不下整个单元格,就会留下空白,另起一页显示。这样会显得很不整洁。改进办法就是输出时添加下面的设置:table.SplitLate = false;3) 添加连接。在pdf中怎么加入链接呢,下面给出实现方法:Anchor anchor = new Anchor(r.fname, attachfont); anchor.Reference = ; anchor.Name =

温馨提示

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

评论

0/150

提交评论