三种Web打印控件实现策略:避开ActiveX限制

4星 · 超过85%的资源 需积分: 30 13 下载量 111 浏览量 更新于2024-09-14 收藏 7KB TXT 举报
在开发Web应用程序时,尤其是在构建B/S架构的管理系统中,处理打印功能是一项常见的挑战。本文将详细介绍三种常用的Web打印控制方法,帮助开发者解决这一问题。 1. **通过服务器端技术实现**: - 首种方法是利用服务器端技术,如PHP、ASP.NET等。例如,可以使用Word或Excel API来创建并处理文档。例如,在ASP.NET中,代码片段展示了如何通过ActiveX对象(如`Microsoft.Office.Interop.Excel`)远程打开Excel文件,动态填充数据,然后使用`PrintOut`方法进行打印。这种方式的优点是可以控制打印内容的完整性和格式,但需要注意的是,由于涉及到ActiveX,对于IE浏览器,可能需要用户允许ActiveX控件的运行,且需要确保IE没有禁用所有ActiveX。 2. **JavaScript实现**: - 第二种方法是使用客户端JavaScript。文中提供了一个JavaScript函数`ExcelPrint`,通过创建一个嵌入式Excel应用实例(`new ActiveXObject("Excel.Application")`),动态创建一个新的工作簿,将HTML表格中的文本内容逐行复制到Excel工作表中,最后调用`PrintOut`函数执行打印。这种方式不需要服务器支持,用户可以在任何支持JavaScript的浏览器上直接打印,但内容的灵活性和样式控制可能受限于浏览器兼容性。 3. **HTML5 Canvas和PDF转换**: - 还有一种趋势是利用HTML5的Canvas元素结合第三方库(如`html2canvas`或`jspdf`)来创建PDF文档,然后下载或直接打印。这种方式无需依赖特定的办公软件,适用于那些对浏览器兼容性要求较高的场景。首先,使用Canvas绘制页面元素,然后通过库将Canvas内容转化为PDF,最后进行打印或提供下载链接。 总结来说,选择哪种方法取决于项目的具体需求、浏览器兼容性、安全性以及用户体验。服务器端技术提供了更丰富的格式控制,但可能需要用户授权;JavaScript实现轻量且灵活,但功能受限;HTML5 Canvas和PDF则是一种现代化且跨平台的选择。在实际项目中,应综合考虑这些因素,以选择最适合的Web打印控件实现方法。
2015-06-23 上传
控件功能强大,却简单易用,所有调用如同JavaScript扩展语句, 主要接口函数如下: PRINT_INIT 打印初始化 SET_PRINT_PAGESIZE 设定纸张大小 ADD_PRINT_HTM 增加超文本项 ADD_PRINT_TEXT 增加纯文本项 ADD_PRINT_TABLE 增加表格项 ADD_PRINT_SHAPE 画图形 SET_PRINT_STYLE 设置对象风格 PREVIEW 打印预览 PRINT 直接打印 PRINT_SETUP 打印维护 PRINT_DESIGN 打印设计 ... 样例清单 1.如何在页面内嵌入控件见样例一 2.如何选材打印当前页面内容见样例二 3.如何用代码生成打印页见样例三 4.如何打印设计和定位套打见样例四 5.如何控制纸张大小和连续打印见样例五 6.如何输出多页长文档及双面打印见样例六 7.如何定向输出见样例七 8.如何打印图片见样例八 9.如何用程序加载打印维护背景图见样例九 10.如何控制打印样式(STYLE)见样例十 11.如何直接打印条形码见样例十一 12.如何读写本地文件见样例十二 13.如何打印旋转内容见样例十三 14.如何按URL打印见样例十四 15.如何打印表格的页头页尾见样例十五 16.如何设置预览窗口大小见样例十六 17.如何发打印机指令或直接读写端口见样例十七 18.如何打印幅面高度不固定的票据见样例十八 19.如何内嵌显示及预览时包含背景图见样例十九 20.如何强制分页并预览多页卡片见样例二十 21.如何控制打印维护的功能权限见样例二十一 22.如何构建自己的纯WEB打印预览见样例二十二 23.如何居中打印超文本见样例二十三 24.如何选择界面皮肤见样例二十四 25.如何指定输出到哪页或仅预览见样例二十五 26.如何提高多页打印的性能见样例二十六 27.如何导出数据到Excel文件见样例二十七 28.如何快速读取客户端系统信息见样例二十八 29.如何使用其它长度单位见样例二十九 30.如何分页输出页面内容见样例三十 31.如何打印表格的分页小计或合计见样例三十一 32.如何实现清晰的图表打印见样例三十二 33.如何实现甘特图等的图表打印见样例三十三 34.如何使用百分比%和满页打印见样例三十四 35.如何获得打印结果和程序代码见样例三十五 36.如何在设计过程中用js编辑内容见样例三十六 37.如何打印公章效果图见样例三十七 38.如何用BASE64编码输出图片见样例三十八 39.如何打印田字格、上划线等文本见样例三十九 40.如何进行数据格式转换见样例四十 41.如何把内容关联后按顺序打印见样例四十一 42.如何把整页内容缩放打印见样例四十二 43.如何分页打印综合表格见样例四十三 44.如何缩放打印单个超文本内容见样例四十四 45.如何获得打印状态及最终结果见样例四十五 46.如何设置右边距和下边距见样例四十六