还剩1页未读,继续阅读
文本内容:
网页表格跨页打印——广东电台邓永亮摘要我在__南方传媒集团办公网的时候,遇到网页表格跨页打印时,表格打印不完整的问题,通过分析研究,终于找到的一个好的办法,就是用Pdf输出打印,该方法为创建Web方式下的可打印文档提供了一个解决方案对新闻采编系统、__管理系统等同类系统的设计研究具有一定的参考价值关键字Asp.net、MVC、Pdf、表格打印、跨页怎样通过打印输出生成适当的纸媒页面呢?普通网页打印,表格打印超出一页,另起一页会出现不完整的表格边框长时间来,这一直是一个课题
一、网络打印概述 B/S结构导致了Web应用程序中打印的特殊性程序运行在浏览器中,打印机在本地,而文件可能在服务器上,导致了打印控制不是很灵活
二、典型技术办法分析对比
1.IE直接打印即直接调用IE中文件菜单中的打印方法来打印 •优点方便快捷,客户端无需任何设置即可; •缺点打印控制不是很灵活如果直接调用这种方式比较简单,也常用的打印方式,只需要将报表页面设计好,用户通过IE菜单中的打印功能完成打印优点是简单,容易实现,缺点是不灵活,不能控制分页,不能控制好页眉和页脚
2.客户端脚本方式打印客户端脚本分为VBScript、j__ascript、JScript几种脚本语言在IE下__应用使用的语法为JScript的语法,由于它和j__ascript几乎没有什么区别,所以也可以称其为j__ascript(简写为JS)一般情况下,主要使用JS可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印通过分析源文档的内容,可以生成打印目标文档 优点客户端__完成打印目标文档的生成,减轻服务器负荷; 缺点源文档的分析操作复杂,并且源文档中的打印内容要有约定
3.导出到Ex__l,Word或PDF中去打印可以在服务端或者客户端进行这种方式需要将页面导出成Offi__文档或Pdf最低的要求是客户端已经__用以打开Word、Ex__l或Pdf文档的软件这种方式可以通过水晶报表组件或其他一些第三方控件非常容易地实现导出成Pdf形式后打印质量和效果都很好,导出成Word或Ex__l后用户可以自定义打印的内容和格式 •优点使用这种方法,可适应性比较强,控制较好; •缺点最低的要求是客户端已经__用以打开Word、Ex__l或Pdf文档的软件增加服务器负荷
三、在Asp.netMVC下导出到DPF的实现通过以上分析,结合南方传媒集团办公网建设的需求,我们最后决定使用第三方式这也是最难实现的一种方式,软件从业者要提高效率的第一法门便是重用,我们应该充分利用最先进的组件,网上有一个叫Itextsharp的东西是用来绘制PDF的,可以____而且开源我用的是Asp.netmvc
1.0,用其他编译工具的话大同小异下面给出具体的实现方法,用.NET创建一个controller,在controller下添加一个公文转Pdf的action名字为gw2pdf代码如下usingiTextSharp;usingiTextSharp.text;usingpublicActionResultgw2pdfintid{MemoryStreamms=newMemoryStream;Documentdocument=newDocumentPageSize.A41f1f30f20f;Try{ PdfWriterwriter=PdfWriter.GetInstan__documentms;document.open; document.addnew Paragraph南方广播影视传媒集团; //…..省略部分不相干代码document.close; byte[]file=ms.ToArray;MemoryStreamoutput=newMemoryStream;output.Writefile0file.Length;output.Position=0;returnnewFileStreamResultoutputapplication/pdf;} catchEx__ption e{} } 以上代码,在Asp.netmvc
1.0的环境下,测试运行通过,但经过全面测试,出现了一些问题,在此,列出三个大家也可能遇到、对大家比较有借鉴意义的问题与解决办法1中文字体显示进过测试,发现生成的PDF文件中的中文字符将不显示改进办法BaseFontbfChinese=BaseFont.CreateFontC:\\WINDOWS\\Fonts\\simsun.ttc1BaseFont.IDENTITY_HBaseFont.NOT_EMBEDDED;FontfontChinese=newFontbfChinese12Font.NOR__LnewColor000;在上面的代码中设置了中文字体的显示,你只要使用下面的代码就可以把中文加到PDF中了document.addnew Paragraph公文稿纸fontChinese; 2表格跨页表格中单元格不会自动断行分页如果本页显示不下整个单元格,就会留下空白,另起一页显示这样会显得很不整洁改进办法就是输出时添加下面的设置table.SplitLate=false;3添加连接在pdf中怎么加入链接呢,下面给出实现方法Anchoranchor=newAnchorr.fnameattachfont;anchor.Referen__=http://;anchor.Name=website; document.addanchor;
四、如何避免Pdf输出的不足为了避免增加服务器负荷南方传媒集团办公网采用第一和第三种方式结合普通查看的话,就用网页形式,若要规范的打印稿,可通过此网页的“打印”按钮,__按钮进行Pdf导出。