多时候,你想给一个按钮,在网页上通过一个实际的打印机打印出网页的内容。
JavaScript可使用window对象的print函数就可以实现这样的功能。
当执行JavaScript的print函数window.print()将会打印当前页面。可以使用onclick事件如下直接调用此函数:
<head>
<script type="text/javascript">
<!--
//-->
</script>
</head>
<body>
<form>
<input type="button" value="Print" onclick="window.print()" />
</form>
</body>1234567891011复制代码类型:[javascript]
这将产生以下按钮,打印此页。
这符合打印出来的页面,但这个不是一个推荐的方式。打印机友好的页面实际上只是一个文本,没有图像,图形或广告页面。
可以使用以下页式打印机友好方式:
使页面的副本,并离开了不需要的文本和图形,然后从原始链接到该打印机友好的页面。
如果你不想让页面的额外副本,那么可以使用像适当的注释标记打印文本 <!-- PRINT STARTS HERE -->..... <!-- PRINT ENDS HERE --> 然后你可以使用PERL或其他脚本在后台清除打印文本和显示进行最后的打印。网站使用同样的方法给打印设备对我们网站的访客。
如果没有人在提供上述设备,那么你可以使用浏览器的标准工具栏让网页打印出来。按照链接如下:
File --> Print --> Click OK button.
开课吧广场-人才学习交流平台
、去掉页眉页脚的打印。虽然后面的JS函数中,也有类似的功能,经实践检验似乎不起作用。下面的代码是有效的,并且可以调整上、下边距。
<style type="text/css" id="style1">
@page { margin-top:80px; margin-bottom:30px;}
</style>
二、显示在页面上的“打印”按钮。
<input type="button" name="button_print" value="打印" onclick="javascript:printHTML()">
三、JS代码。
**office-print:网页打印Office文件的救星**
**开篇导语:**
在日常工作中,我们常常遇到需要在线预览和打印Word、Excel、PowerPoint等Office文档的需求。然而,直接在浏览器中打印Office文档往往面临格式错乱、排版混乱等问题。今天,我们将聚焦一种名为"office-print"的解决方案,它能帮助我们轻松实现网页环境下Office文档的完美打印。本文将通过详尽的说明和代码实例,揭开"office-print"如何成为网页打印Office文件的救星。
## **一、问题痛点:在线打印Office文档的挑战**
传统的网页打印Office文档方法存在诸多不便,如:
- 文档格式难以保持原始样式;
- 复杂的表格、图表难以完整呈现;
- 特殊字体和样式丢失;
- 大量空白页和布局错乱。
## **二、救星登场:office-print介绍**
**office-print** 是一款专为解决在线打印Office文档而生的解决方案,它可以将Word、Excel、PowerPoint等文档以接近原生软件的样式在网页上展示,并提供完善的打印功能,确保打印输出效果与原文件高度一致。
## **三、office-print的工作原理与实现**
**1. 文档转换**
首先,通过后台服务将上传的Office文档转换为HTML格式,同时尽可能保持原文件的所有样式和格式信息。
```javascript
// 示例:使用Office转HTML工具(如 mammoth.js)
const mammoth = require("mammoth");
mammoth.convertToHtml({ path: "document.docx" })
.then(result => {
const html = result.value;
// 将转换后的HTML插入到网页中展示
document.getElementById("preview").innerHTML = html;
})
.catch(error => {
console.error(error);
});
```
**2. HTML页面打印优化**
将转换后的HTML嵌入到网页中,并利用CSS进行打印样式优化,确保打印时与屏幕预览效果一致。
```css
@media print {
/* 打印样式优化,例如去除网页无关元素、调整页眉页脚等 */
body {
font-size: 10pt;
background: white !important;
}
nav, footer, aside {
display: none;
}
/* 更多打印样式优化... */
}
```
**3. office-print库的集成**
有些情况下,我们可以直接利用现有的第三方库,如`jspdf`、`docxtemplater`等,结合`office-print`库进行更精细的打印控制。
```javascript
import OfficePrint from 'office-print';
OfficePrint.printDocument(document.getElementById('preview'), {
paperSize: 'A4',
margins: '1cm',
landscape: false,
fitToPage: true,
header: '这是页眉',
footer: '这是页脚',
beforePrint: () => {
// 打印前的准备工作
},
afterPrint: () => {
// 打印后的清理工作
},
});
```
## **四、实战案例与注意事项**
- **案例一:Word文档在线预览与打印**
- 使用`mammoth.js`将Word文档转换为HTML,并通过`office-print`实现打印。
- **案例二:Excel表格的打印优化**
- 对于表格数据,确保打印时行列宽度自适应,防止数据溢出。
- **案例三:PowerPoint幻灯片打印**
- 将每一页幻灯片单独转换为HTML,并按顺序排列打印。
**注意事项:**
- 转换过程中可能会出现特殊字体丢失的问题,需要在CSS中引用相应的Web字体。
- 对于复杂的文档,可能需要多次尝试和调整CSS样式以达到最优打印效果。
- 注意版权问题,确保使用的文档可以合法公开打印和展示。
## **五、结语**
通过office-print,我们找到了一种有效解决网页打印Office文件问题的途径,大大提升了工作效率和用户体验。随着技术的不断发展和完善,我们期待更多类似解决方案的出现,让在线预览和打印Office文档变得越来越简单和可靠。在实际项目中,根据具体需求灵活应用这些技术和工具,无疑将成为Web前端开发的一大利器。
*请认真填写需求信息,我们会在24小时内与您取得联系。