vue 在线预览文档

1.office web查看器(word,excel)

使用方法:
https://view.officeapps.live.com/op/view.aspx?src=文件地址

2.使用docx-preview(仅支持docx)

使用方法:
npm i docx-preview -S

<template>
<div>
	<div ref="file"></div>
</div>
</template>

<script>
const docx = require("docx-preview");
export default {
	mounted(){
		axios({
            url//文档路径
            , method: 'GET'
            , responseType:'blob'
        }).then((response) => {
            if (response.status == 200) {
                docx.renderAsync(response.data, this.$refs.file); // 渲染到页面
            }
        }).catch(error => {
            console.log('error',error)
        })
	}
}
</script>
3.使用mammoth.js(仅支持docx)

使用方法:
npm i docx-preview -S

<template>
<div>
	<div id="wordView" v-html="vHtml"></div>
</div>
</template>

<script>
import mammoth from "mammoth";
export default {
	data(){
		return{
			vHtml:''
		}
	},
	mounted(){
		axios({
            url//文档路径
            , method: 'GET'
            , responseType:'arraybuffer'
        }).then((response) => {
        	var vm = this
            if (response.status == 200) {
                mammoth
                 .convertToHtml({ arrayBuffer: new Uint8Array(response.data) })
                 .then(function (resultObject) {
                     console.log('resultObject',resultObject)
                     vm.$nextTick(() => {
                         // document.querySelector("#wordView").innerHTML = resultObject.value;
                         vm.vHtml = resultObject.value;
                     });
                 });
            }
        }).catch(error => {
            console.log('error',error)
        })
	}
}
</script>
4.使用xdoc文档在线预览服务(收费服务)

http://view.xdocin.com/
在这里插入图片描述
使用方法:
https://view.xdocin.com/view?src=你的文档地址

可选参数:
&pdf=true,word文档尝试以pdf方式显示,默认false
&img=true,尝试以图片方式显示,默认false
&watermark=水印文本,显示文本水印;“img:”+图片url表示图片水印,如:img:https://view.xdocin.com/demo/wm.png
&saveable=true,是否允许保存源文件,默认false
&printable=false,是否允许打印,默认true
&copyable=false,是否允许选择复制内容,默认true
&toolbar=false,是否显示底部工具条,默认true
&title=自定义标题
&expire=30,预览链接有效期,单位分钟,默认永久有效
&limit=,限制页数,如:“5”表示只显示前5页,“2,5”表示从第2页开始的5页,对pdf/doc/docx/ppt/pptx有效
&filename=文件名,辅助识别文档格式
&fontsize=字体大小(单位px),默认14,范围:6~58
&mtime=文件修改时间戳(如:1633093801,精确到秒)或修改时间(如:2021-10-01 21:10:01),值改变刷新缓存

5.usdoc 文档在线预览

http://usdoc.cn/index.html
在这里插入图片描述
使用方法:
http://vw.usdoc.cn/?src=文件url地址

可选参数:
参数w=0(默认省略)
参数w=1(图文模式)
参数w=2(精准模式)
参数w=3(返回PDF文件流)
参数watermark=水印(预览加水印)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中实现在线Word文档需要借助一些第三方库和服务。以下是一种实现方式: 1. 首先,你可以使用`mammoth.js`库将Word文档转换为HTML格式。这个库可以解析.docx文件并将其转换为HTML字符串。 2. 接下来,你可以使用`vue-html2pdf`库将HTML字符串转换为PDF格式。这个库可以将HTML内容渲染为PDF文档。 3. 最后,你可以使用`<iframe>`或`<embed>`标签将PDF文档嵌入到Vue组件中,以实现在线。 以下是一个简单的示例代码: ```vue <template> <div> <iframe :src="pdfUrl" width="100%" height="600px"></iframe> </div> </template> <script> import VueHTML2PDF from 'vue-html2pdf'; import mammoth from 'mammoth'; export default { data() { return { pdfUrl: '' }; }, methods: { async generatePDF() { const response = await fetch('path/to/your/word/document.docx'); const arrayBuffer = await response.arrayBuffer(); const result = await mammoth.extractRawText({ arrayBuffer }); VueHTML2PDF.generatePDF(result.value, pdf => { this.pdfUrl = pdf; }); } }, mounted() { this.generatePDF(); } }; </script> <style> iframe { border: none; } </style> ``` 在上面的示例中,我们首先引入了`vue-html2pdf`和`mammoth`库。然后,我们定义了一个`pdfUrl`变量来存储生成的PDF文件的URL。 在`generatePDF`方法中,我们使用`fetch`函数获取Word文档的二进制数据,并使用`mammoth`库将其转换为HTML格式的字符串。接下来,我们使用`vue-html2pdf`库将HTML字符串转换为PDF文件,并将生成的PDF文件的URL赋值给`pdfUrl`变量。 最后,在组件的`mounted`生命周期钩子中调用`generatePDF`方法来生成PDF并将其嵌入到Vue组件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值