VUE中实现文档在线预览

移动端和PC端无插件预览PDF、OFD、Word等多种文档

index.html

<script type="module">
import { createApp } from 'vue'
import XdocView from './XdocView.js'
createApp({
    components: {
        XdocView
    },
    data() {
        return {
            fileUrl: "https://view.xdocin.com/demo/view.docx"
        }
    }
}).mount('#app')
</script>
<div id="app">
    <ol>
    <xdoc-view :src="fileUrl" style="height:600px;"></xdoc-view>
    </ol>
</div>

XdocView.js

export default {
  name: "XdocView",
  data() {
    return {
      xsrc:""
    };
  },
  props: {
    src: String,
    watermark: String,
  },
  watch: {
    src: {
      handler(val) {
        this.genXsrc();
      },
      immediate: true
    },
    watermark: {
      handler(val) {
        this.genXsrc();
      },
      immediate: true
    }
  },
  methods: {
    genXsrc() {
      if (this.src) {
        //你的文档地址
        var file = this.src;
        //XDOC文档预览服务地址
        var xurl = "https://view.xdocin.com/view?src=";
        //传入文档地址
        xurl += encodeURIComponent(file);
        //预览参数
        var ops = {
          "watermark": this.watermark,
          // "pdf": true, //word文档尝试以pdf方式显示,默认false
          // "saveable": true, //是否允许保存源文件,默认false
          // "printable": false, //是否允许打印,默认true
          // "copyable": false, //是否允许选择复制内容,默认true
          // "toolbar": false, //是否显示底部工具条,默认true
          // "expire": 30, //预览链接有效期,单位分钟,默认永久有效
          // "limit": "1,3", //限制页数,如:“5”表示只显示前5页,“2,5”表示从第2页开始的5页,对pdf/doc/docx/ppt/pptx有效
          // "mtime": 1633093801, //文件修改时间戳(精确到秒)或修改时间(如:2021-10-01 21:10:01),值改变刷新缓存,实时预览
        };
        //传入预览参数
        for (var a in ops) {
          if (ops[a] != undefined) {
            xurl += "&" + a + "=" + encodeURIComponent(ops[a]);
          }
        }
        //开始预览
        this.xsrc = xurl;
      }
    }
  },
  template: '<iframe :src="xsrc" frameborder="0" scrolling="auto" style="width:100%;height:100%;"></iframe>'
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue2实现在线预览Word文档的方法如下: 1. 首先,你需要调取接口获取后端传回的Word文档流。这可以通过调用接口的方法来完成,接口返回的文档流通常存储在res.data.data。你可以使用axios或其他HTTP请求库来发送请求并接收响应。 2. 在Vue模板,你可以创建一个按钮,通过点击按钮来触发预览Word文档的操作。按钮可以使用Element UI库的el-button组件或其他自定义的按钮组件。在按钮的点击事件处理函数,调用接口方法并将返回的文档流作为参数传递给渲染函数。 3. 在Vue组件引入docx-preview库,并使用其提供的renderAsync方法来渲染Word文档。你可以在组件的script标签通过require语法引入docx-preview库,并在方法使用docxx.renderAsync方法来渲染文档。渲染函数需要传递两个参数,第一个参数是接口返回的文档流,第二个参数是一个DOM元素的引用,用于指定渲染文档的位置。 下面是一个示例代码,演示了如何在Vue2实现在线预览Word文档: ```html <template> <div> <el-button @click="previewWord">预览Word文档</el-button> <div ref="wordContainer"></div> </div> </template> <script> import { getWordDocument } from "@/api/documents"; var docxx = require("docx-preview"); export default { methods: { previewWord() { getWordDocument() // 调用接口获取文档流 .then((res) => { docxx.renderAsync(res.data.data, this.$refs.wordContainer); }) .catch((error) => { this.$message.error(error); }); }, }, }; </script> ``` 请注意,上述示例代码的getWordDocument方法是一个示例接口调用方法,你需要根据实际情况替换为适用于你的项目的接口调用方法。此外,你还需要根据实际情况对代码进行调整和修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue实现预览word文档(处理文档流)](https://blog.csdn.net/weixin_45294459/article/details/126997364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [vue实现pdf文档在线预览功能](https://download.csdn.net/download/weixin_38590784/13681693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值