网页中JS实现(调用)打印预览功能
近期的项目中需要在页面中实现打印预览功能——点击网页中的“打印”(Print),弹出打印预览窗口,点击窗口页面中的“开始打印”(Print),则出现浏览器的打印界面。
看到这样的需求首先想到的是JavaScript,似乎也只有JavaScript。如果说用.Net去做的话那简直是为了杀一只鸡而动用一辆坦克——后果可想而知。
实现打印网页非常简单,一个window.print();就完成了。
至于打印预览,经过翻山越岭的翻阅资料——这是一项不可能轻易完成的任务——JavaScript根本就不支持打印预览,Firefox等浏览器也没有提供相应的调用接口或方法。
至于网上说的 WebBrowser——IE内置的浏览器控件,虽然可以实现打印、打印预览、打印设置等功能,但仅仅是在IE下可行,鉴于这点足以将该方案拒之门外了。
那么怎么才能满足需求呢——打印预览:即希望在打印前,看看打印出来是个什么样子的。稍微变通一下这个问题就很简单了,只要你知道CSS有针对打印机的样式!接下来该怎么做就不用多说了吧?
回到最开始的需求描述:
1. 点击网页中的“打印”(Print),弹出打印预览窗口:
一个window.open打开打印预览页面,该页面内容与被打印页面内容完全一样,不同的只有一点,增加了用于打印机的样式:
<link href="/print.css" rel="stylesheet" />
<link href="/print.css" rel="stylesheet" media="print" />
需要使用两次,第一次是给浏览器用的,第二次是给打印机用的。
至于这个打印页面如何获得被打印页面的代码,并加入上述css就是不在本文讨论的技术问题了,用asp、php、.net、js都可以实现。
2. 点击窗口页面中的“开始打印”(Print),则出现浏览器的打印界面
预览页面出来了,那就是打印,在打印预览页面中加入 "开始打印"按钮,给它一个window.print();就解决了。
JS实现网页打印预览的功能解决了——上面的方案是通用的,但打印效果会打折扣——虽然样式可以隐藏部分不需要打印的内容,但始终改变不了结构。所以要有更好的打印效果还得有点针对性的去做,那就是为每个模块建立相应的打印预览页面,将其按照标准文档的格式排版,这样打印效果才更适合阅读——当用户拿着一张A4纸的时候他看到的应该是清晰明了的文档,而不是残缺不全的网页。
当做到这里时,偶然发现微软Live Mail(原Hotmail)的邮件打印预览也是这样干的——
图1.邮件右键菜单中的打印预览按钮
图2.针对邮件的打印预览页面
虽然微软也这样干,不过看看这个打印预览,连最基本的需要几张纸都看不到,是不是太不体贴了?而浏览器中的打印预览——纸张数量,页面边距、页面大小、横向竖向、打印背景、文档标题等等,两者相比较,选择在页面中加入打印预览功能的理由是什么?
我是绝对不会用的,但是有人要用,那就是有需求!
分享到:
相关推荐
在IT领域,特别是Web开发与办公自动化结合的场景下,实现网页端直接调用本地Office应用如Word进行打印预览是一项实用且具有挑战性的技术。本文将深入解析如何利用JavaScript(JS)调用Microsoft Word来实现文档的...
首先,我们需要理解JavaScript的`window.print()`方法,这是最基本的打印功能实现。此方法会调用系统的打印对话框,允许用户选择打印机并设置打印选项。例如: ```javascript function printContent() { window....
### 使用JavaScript调用IE浏览器打印和预览功能 在网页开发过程中,经常需要实现文档的打印和预览功能。在Internet Explorer(IE)浏览器中,可以通过JavaScript与ActiveX控件结合来实现这些功能。下面将详细介绍...
6. 打印预览的实现:在JavaScript中直接调用打印预览是一个相对复杂的过程,因为不同的浏览器对打印预览的支持程度不同。某些浏览器内置了打印预览功能,而其他一些则需要通过特定的API来调用。在IE中可以通过ExecWB...
本篇将详细介绍如何在Chrome浏览器中实现打印预览及打印功能,并提供相关的技术资源。 首先,Chrome浏览器的打印功能是通过其内置的`window.print()` JavaScript API来实现的。这个API会触发浏览器的默认打印对话框...
网页打印和打印预览是网页开发中的重要功能,它们使得用户可以直接从浏览器中将网页内容输出到打印机或者进行查看预览。在这个过程中,JavaScript(JS)扮演了关键的角色,提供了丰富的API和库来实现这些功能。 一...
总结来说,实现跨浏览器的JS打印预览功能,需要考虑不同浏览器的特性,如IE的ActiveXObject,以及利用jQuery插件来提供统一的用户体验。`jquery-print-preview-plugin`这类插件简化了这一过程,提供了丰富的定制选项...
2. **隐藏非打印元素**:有时候我们希望在打印预览中排除某些元素,比如导航栏、广告或者页脚。这可以通过CSS的`@media print`查询来实现,将这些元素的`display`属性设置为`none`。 3. **自定义打印范围**:默认...
js调用word打印预览,用JS实现WORD的打印与打印预览功能
PDF.js是Mozilla开发的一个开源项目,它允许开发者使用纯JavaScript在Web浏览器...以上就是关于"pdf.js Demo 纯js实现PDF在线预览及打印"的详细知识点,涵盖了该项目的基本原理、主要功能及其在实际应用中的实现方式。
在JavaScript(JS)中直接调用Word文档进行打印主要涉及到Web应用程序与本地文件系统的交互以及浏览器的安全限制。本文将深入探讨这一主题,并提供一些实现这一功能的方法。 首先,理解JavaScript在浏览器环境中的...
在探讨如何利用JavaScript调用浏览器的打印模块实现点击按钮时触发自定义函数的过程中,我们首先需要了解浏览器提供的打印API以及如何通过编程方式触发打印任务。现代浏览器通常提供了window.print()方法,该方法...
本篇文章将深入探讨如何使用JavaScript实现HTML中的PDF文件在线预览、下载以及打印功能。我们将首先介绍相关的JavaScript库,然后通过一个简单的示例演示如何实现这些功能。 一、JavaScript PDF处理库 1. **PDF.js...
在Web开发中,JavaScript(简称JS)打印功能是不可或缺的一部分,尤其对于生成报表或提供打印选项的网页至关重要。本实例提供了具有设置和预览功能的JS打印解决方案,可以帮助开发者更高效地实现这一需求。 首先,...
下面将详细阐述Lodop的功能特性、使用方法以及如何通过JavaScript调用来实现网页在线预览和打印。 Lodop控件的核心优势在于其强大的功能和易用性。它可以裁剪页面内容,这意味着用户可以根据需要选择打印特定区域,...
而“jQuery 调用浏览器打印功能”是利用 jQuery 实现的一种方法,允许用户通过点击按钮或执行特定操作来触发浏览器的打印功能,从而打印网页内容。在描述中提到了 jqPrint 插件,这是一个专门用于打印 jQuery 对象...
在打印预览中,我们可以通过CSS的`@media print`规则来定义打印时的样式。例如: ```css @media print { @page { margin: 1cm; /* 设置页边距 */ @top-center { content: element(header); /* 引用页眉元素 */ ...
在现代Web开发中,实现网页内容的打印预览功能是一项常见且实用的需求。用户往往需要将网页上的某些内容(如报告、发票等)以特定格式打印出来,这就要求开发者能够提供一个良好的打印预览功能。本文将详细探讨如何...
在这个场景中,"PDF.js在线预览打印"是指利用PDF.js库实现的功能,让用户能够直接在网页上查看PDF内容,并可以方便地打印或下载这些文件。 PDF.js的工作原理是通过获取PDF文档的元数据,然后解析PDF文件的字节流,...
在Web开发中,有时我们需要为用户提供打印功能,以便他们可以将网页内容输出到纸质媒介上。JavaScript(简称JS)作为浏览器端的主要脚本语言,提供了这样的能力。本篇将详细介绍如何利用JS的`Window`对象的`print()`...