当前位置: 首页 > news >正文

word打印---doc转html后进行打印,window.print、print-js、vue-print-nb

提示:word预览方式—插件

文章目录

    • @[TOC](文章目录)
  • 前言
  • 一、vue-office-docx把docx转换html
  • 二、调取window.print
  • 三、print-js
  • 四、vue-print-nb
  • 总结

前言

word预览

在这里插入图片描述

一、vue-office-docx把docx转换html

npm install vue-office-docx -S-D

officeDocx.vue

<template><div class="preview_box"><VueOfficeDocx :src="htmlContent"></VueOfficeDocx></div></template><script>import axios from 'axios'import VueOfficeDocx from '@vue-office/docx'//引入相关样式import '@vue-office/docx/lib/index.css';export default {name: 'preview',components:{VueOfficeDocx},data () {return {src:`.docx文件rul`,htmlContent:''}},mounted(){this.docToHtml();},methods: {docToHtml(){axios.get(this.src,{ responseType: 'arraybuffer' }).then((res)=>{this.htmlContent = res.data;})}}}</script><style scoped></style>

在这里插入图片描述
样式还原度一般,间距太大,分页也有问题

二、调取window.print

officeDocx.vue

<template><div class="preview_box" ><div class="preview_print_btn" @click="printHTML">打印</div><div  ref="printBoxRef"><VueOfficeDocx :src="htmlContent"></VueOfficeDocx></div></div></template><script>import axios from 'axios'import VueOfficeDocx from '@vue-office/docx'//引入相关样式import '@vue-office/docx/lib/index.css';export default {name: 'preview',components:{VueOfficeDocx},data () {return {src:`https://iteachcdn.test.xdf.cn/doc/111f92d3d71f471db47a4cb88b425d71.docx`,// src:`.docx文件rul`,htmlContent:''}},mounted(){this.docToHtml();},methods: {docToHtml(){axios.get(this.src,{ responseType: 'arraybuffer' }).then((res)=>{this.htmlContent = res.data;})},printHTML(){// 新建窗口const win = window.open('','_blank');// 把要打印的html写入新窗口win.document.write(this.$refs.printBoxRef.innerHTML);// 调起浏览器打印win.window.print();// 关闭新窗口win.window.close();  },}}</script>
<style scoped>
.preview_print_btn{height: 32px;line-height: 32px;background: #0e7a38;color: #fff;text-align: center;
}
</style>

在这里插入图片描述
预览有问题,打印也有问题

三、print-js

npm install print-js -S-D

officeDocx.vue

<template><div class="preview_box" ><div class="preview_print_btn" @click="printHTML">打印</div><div  ref="printBoxRef"><VueOfficeDocx :src="htmlContent"></VueOfficeDocx></div></div></template><script>import axios from 'axios'import VueOfficeDocx from '@vue-office/docx'//引入相关样式import '@vue-office/docx/lib/index.css';import printJS from 'print-js'export default {name: 'preview',components:{VueOfficeDocx},data () {return {src:`https://iteachcdn.test.xdf.cn/doc/111f92d3d71f471db47a4cb88b425d71.docx`,// src:`.docx文件rul`,htmlContent:''}},mounted(){this.docToHtml();},methods: {docToHtml(){axios.get(this.src,{ responseType: 'arraybuffer' }).then((res)=>{this.htmlContent = res.data;})},printHTML(){printJS({printable: this.$refs.printBoxRef,type: 'html',targetStyles: ['*']}); },}}</script>
<style scoped>
.preview_print_btn{height: 32px;line-height: 32px;background: #0e7a38;color: #fff;text-align: center;
}
</style>

在这里插入图片描述
打印样式相对好一些,但是分页有问题

四、vue-print-nb

npm install vue-print-nb -S-D

officeDocx.vue

<template><div class="preview_box" ><div class="preview_print_btn" v-print="printobj">打印</div><div id="printBox" ref="printBoxRef"><VueOfficeDocx :src="htmlContent"></VueOfficeDocx></div></div></template><script>import axios from 'axios'import VueOfficeDocx from '@vue-office/docx'//引入相关样式import '@vue-office/docx/lib/index.css';import Print from 'vue-print-nb';export default {name: 'preview',components:{VueOfficeDocx},data () {return {src:`.docx文件rul`,htmlContent:'',printobj: {id: "printBox",popTitle: '标题',extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",extraHead: '<meta http-equiv="content-language" content="zh-cn" />',beforeOpenCallback(vue) {console.log('调起打印弹窗之前');},openCallback(vue) {console.log('调起打印弹窗');}}}},directives: { Print },mounted(){this.docToHtml();},methods: {docToHtml(){axios.get(this.src,{ responseType: 'arraybuffer' }).then((res)=>{this.htmlContent = res.data;})},}}</script>
<style scoped>
.preview_print_btn{height: 32px;line-height: 32px;background: #0e7a38;color: #fff;text-align: center;
}
@media print {@page {size: auto;margin: 3mm;}body {height: auto;}
}
</style>

在这里插入图片描述
打印样式也有问题
综上:word转html后进行打印方式存再问题,不建议使用

总结

踩坑路漫漫长@~@

http://www.lryc.cn/news/413029.html

相关文章:

  • CTF学习笔记汇总(非常详细)零基础入门到精通,收藏这一篇就够了
  • 如果想不明白,那就读书吧
  • Golang处理Word文档模板实现标签填充|表格插入|图标绘制和插入|删除段落|删除标签
  • PHP学习:PHP基础
  • Xinstall新玩法:Web直接打开App,用户体验再升级!
  • perf 排查高延迟
  • 配置8188eu无线网卡的热点模式
  • 为什么 DDoS 攻击偏爱使用 TCP 和 UDP 包?
  • 多址技术(FDMA,TDMA,CDMA,帧,时隙)(通俗易懂)
  • 基于 KubeSphere 的 Kubernetes 生产环境部署架构设计及成本分析
  • RabbitMQ 入门篇
  • 【赛事】2024第五届“华数杯”全国大学生数学建模竞赛
  • DB管理客户端navicat、DBever、DbVisualizer数据库连接信息迁移
  • CF 训练2
  • 内网隧道学习笔记
  • Umi-OCR:功能强大且易于使用的本地照片识别软件
  • HarmonyOS开发商城商品详情-底部导航
  • C语言 ——— 学习、使用 strcat函数 并模拟实现
  • 视频超压缩保持质量 ffmpeg
  • 大型语言模型入门
  • canvas-视频绘制
  • 红酒与美食搭配:味觉的新探索
  • 大模型日报 2024-08-02
  • 【Pytorch】一文向您详细介绍 torch.sign()
  • 超级详细,如何手动安装python第三方库?
  • WebSocket协议测试
  • 浅谈【C#】代码注册COM组件
  • C++数据结构学习(顺序表)
  • springboot宠物用品商城系统-前端-计算机毕业设计源码74346
  • 【vue预览PDF文件的几种方法】