vue 使用printjs打印 火狐浏览器只有一页
时间: 2023-08-18 10:29:24 浏览: 697
在 Vue 中使用 print.js 打印时,可能会遇到打印出来只有一页的问题,这是因为 Firefox 浏览器和其他浏览器有些不同,需要使用特定的样式来解决。
下面是解决方法:
1. 在打印样式中添加如下样式:
```css
@page {
size: auto;
margin: 0mm;
}
@media print {
html, body {
width: 210mm;
height: 297mm;
}
}
```
2. 在打印前先将页面的样式改为打印样式,打印完成后再恢复原有样式。
```js
import printJS from 'print-js';
export default {
methods: {
print() {
// 保存原有样式
const originStyle = document.documentElement.style.cssText;
// 设置打印样式
document.documentElement.style.cssText = 'height: 100%; width: 100%; overflow: hidden;';
// 打印
printJS({
printable: 'print',
type: 'html',
css: 'path/to/print.css',
});
// 恢复原有样式
document.documentElement.style.cssText = originStyle;
},
},
};
```
以上代码中的 `path/to/print.css` 是打印样式所在的路径,根据实际情况进行修改。
希望以上解决方案能够帮助到您。
阅读全文