转自张善友大牛的博客http://www.cnblogs.com/shanyou/p/3185111.html
应用web化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于web的应用,客户端的规则很简单,容易学习,容易维护,容易发布。但对程序员来说,因为浏览器的局限性,却要面对很多挑战。怎么样来进行基于web的套打,就是这么一个令多数程序员头痛不已的问题。
基于web的套打,难度在于要将浏览器中呈现的html,精确地打印到票据中,而且能够实现对分页位置的控制。下面就ie浏览器所能采用的套打解决方案,来个汇总分析,希望对大家有所帮助。
jatoolsPrinter 是一款实现网页套打的免费工具。该工具的特点是可以直接对web页面进行精确的分页打印,这不仅使“会设计网页就会做网页套打”成为可能,也使项目经理们摆脱了预算紧张的压力。jatoolsPrinter通过在网页中嵌入控件,解决了web客户端精确打印,批量打印,打印配置自动保留等问题。jatoolsPrinter 官方正式免费版,支持ie6+,http://printfree.jatools.com。
功能特点:
真正免费,不加水印,没有ip或域名限制,不限时间,兼容ie6+
无须注册,下载即用
提供经过微软数字签名的cab自动安装包,安装更方便
长期升级保障,免费论坛支持,让你无后顾之忧
稳定可靠,启动速度远胜同类产品
常用功能集于一身,简约而不简单,软件大小只有84k
本文主要介绍jatoolsPrinter打印控件来完成web的打印功能,这个控件已经把打印功能封装的非常好,主要是把这个控件引入,之后写一些简单的js代码就能完成相应的打印功能。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<!-- 插入打印控件 -->
<object id="jatoolsPrinter" classid="CLSID:B43D3361-D075-4BE2-87FE-057188254255"
codebase="jatoolsPrinter.cab#version=5,7,0,0">
</object>
<script type="text/javascript">
function doPrint(how) {
//打印文档对象
var myDoc = {
documents: document, // 打印页面(div)们在本文档中
copyrights: '杰创软件拥有版权 www.jatools.com' // 版权声明必须
};
// 调用打印方法
if (how == '打印预览...')
jatoolsPrinter.printPreview(myDoc); // 打印预览
else if (how == '打印...')
jatoolsPrinter.print(myDoc, true); // 打印前弹出打印设置对话框
else
jatoolsPrinter.print(myDoc, false); // 不弹出对话框打印
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id='page1' style='width:300px;height:300px;'>
test
</div>
<input type="button" value="打印预览..." onclick="doPrint('打印预览...')"/>
<input type="button" value="打印..." onclick="doPrint('打印...')"/>
<input type="button" value="打印" onclick="doPrint('打印')"/>
</form>
</body>
</html>
主要分几个步骤:
一、引入打印控件jatoolsPrinter
<!-- 插入打印控件 --> <object id="jatoolsPrinter" classid="CLSID:B43D3361-D075-4BE2-87FE-057188254255" codebase="jatoolsPrinter.cab#version=5,7,0,0"> </object>
二、给要打印的div取id名
三、编写js代码实现打印div的功能
(注意:在同一页面中,有多个可打印文档,他们可以用page_div_prefix属性来区别page_div_prefix前缀+page+页序号 构成可打印div的id,如前缀为 'report1' ,则找到以 'report1page1'为id的div作为文档首页该属性,默认值为空)
注意事项:
1. 控件在打印指定div对象时,如果纸张太小不够打印时,超出部分将被截掉(clip)。
2. 被指定的div中的内容,可以是html任何可见对象,图片,flash,或文本等等。
3. 控件打印时,边距可设,不设则取打印机默认值。
4. div的id必须连续,如果你的div,存在 'page1'、'page2'、'page4',而不存在'page3',则控件只打印前两页,'page4'不会被打印。
5. div对象在页面中的位置,可以是随意的,比如,page1显示在page2后面,也是合法的。
6. 指定的div会被打印,没被指定的html元素将不会被打印,比如,本示例中的‘打印’按钮,不会被打印。
7. copyrights属性是版权信息,必须写。
相关推荐
通过集成【无水印Flash头像编辑组件】,开发者可以为用户提供一个高效、美观的头像编辑平台,提升网站或应用的互动性和个性化程度。同时,这也是一种对传统Flash技术的应用,展示了其在图像处理领域的强大功能。随着...
在压缩包内的"WindowsFormsApp1"文件名可能表示这是一个基于Windows Forms平台的应用程序示例。Windows Forms是.NET Framework的一部分,用于构建桌面应用程序。这表明FastReport可以很好地集成到Windows Forms应用...
1. **gregn50.dll**:这是一个动态链接库(DLL)文件,包含Grid++Report5.6的运行时组件。DLL文件允许多个程序共享同一代码库,节省内存并提高系统效率。在运行使用Grid++Report5.6设计的报表应用时,这个文件将被...
总的来说,FastReport.Net v2017.1.16作为一个绿色无水印版本,对于.NET开发者来说,是一个高效、便捷的报表解决方案,无论是在开发过程中还是在最终产品中,都能为报表设计带来极大的便利。通过FrNet_2017.1.16这个...
PDFView.ocx是这个插件的核心组件,它是一个ActiveX控件,由YCanPDF公司开发并发布。版本号1.7.9.3表明这是该插件的一个特定更新版本,可能包含了性能优化、新功能或已知问题的修复。 PDF(Portable Document ...
O2S.Components.PDFRender4NET.dll 真正无水印最新版 v4.5.1, 能够将pdf转化为图片,PDF打印的强大类库。 一、组件概述 O2S.Components.PDFRender4NET.dll是O2 Solutions公司开发的一款PDF渲染库,它完全基于.NET ...
打印控件,也称为打印组件,是软件开发中用于处理打印任务的模块。它们通常以动态链接库(DLL)或可执行文件的形式存在,能够嵌入到应用程序中,负责解析文档、设置打印参数以及驱动打印机进行实际的打印工作。...
总的来说,Grid++Report 5.6去水印版为.NET开发者提供了一个强大、易用的报表解决方案,无论是简单的数据展示还是复杂的业务报表,都能得心应手地完成。其去水印特性使得成品报表更加专业,提升了软件的整体质量。
总之,Aspose.Words是一款强大且灵活的.NET组件,用于处理Word文档,19.3.0.0无水印版提供了一种纯净的商业使用体验。通过Aspose.Words.dll和readme.txt,开发者可以快速集成并掌握这款工具的使用。
总结来说,"stimulsoft.designer.js去水印.7z"是一个包含无水印版本的Stimulsoft Designer JS组件的集合,为开发者提供了优质的报表设计和预览体验。这些文件不仅涵盖了报表设计和查看的核心功能,还提供了多种扩展...
综上所述,FastReport for .NET是一个功能全面的报表解决方案,无论是在桌面应用还是Web应用中,都能帮助开发者快速创建专业且美观的报表,提高开发效率。通过深入学习和熟练运用,开发者可以充分发挥其潜力,满足...
3. **Spire.License.dll**:这是一个许可证管理库,用于验证Spire.PDF组件的合法使用。在实际开发中,你需要导入这个库并设置有效的许可证,才能使用Spire.PDF的所有功能。如果没有许可证,可能会有功能限制或者运行...
在这个例子中,"PDF_print"可能是另一个与PDF打印相关的文件或功能。在Spire.Pdf库中,除了合并PDF外,还有打印PDF的功能。`PdfDocument.Print()`方法可以用来打印整个PDF文档,而`PdfPageBase.Print()`则可以打印...
PDFRender4NET,另一方面,是一个用于.NET的PDF渲染组件。它的主要功能是将PDF文档转换为图像或矢量格式,如JPEG、PNG、SVG等,这在需要将PDF文件嵌入到其他文档或网页,或者进行批处理打印时非常有用。PDFRender4...
此外,FastReport.Net的一个显著优势在于其无水印和5页打印限制的特性。这意味着开发者在使用这款工具时,不会因为这些限制而影响报表的质量和完整性。对于商业项目来说,这是一项非常有价值的优势,因为它允许...
v2019.4.9是FastReport.NET的一个特定版本,它在win10操作系统上经过了测试并确认兼容,这意味着在Windows 10环境下可以顺利运行和使用。 FastReport.NET的主要特点和功能包括: 1. **报表设计界面**:提供了一个...
Foxit Reader SDK ActiveX 3.0 Pro 是一个专业级的PDF阅读器开发包,专为软件开发者设计,用于在ActiveX环境中集成PDF文档处理功能。这个版本已经去除了水印,使得在应用中显示PDF时不会出现Foxit的默认水印,提供了...
在Delphi编程中,报表生成是一个至关重要的部分,它帮助开发者创建各种复杂的数据报告,如销售报表、财务报表等。FastReport提供了一个直观的拖放界面,使得非程序员也能设计出专业的报表。它的主要特点包括: 1. *...
另外,此版本还强化了对Web应用的支持,意味着开发者可以轻松地在Web环境中创建、查看和打印报表,满足了多平台的需求。 在Web应用方面,Fastreport .NET提供了Web报表控件,使得报表能在ASP.NET Web Forms或MVC...
总结来说,"Stimulsoft-report2017.1.11(js版完全去水印)"是一个强大的JavaScript报表组件,适用于Web应用的开发。它提供了丰富的设计选项、多种数据适配器和强大的交互功能,有助于开发者创建专业级别的报表,而...