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

【Vue实用功能】Vue实现文档在线预览功能,在线预览PDF、Word等office文件

1、Office Web(微软的开发接口)

优点

  1. 没有 Office也可以直接查看Office 文件
  2. 适用于移动端、PC
  3. 无需下载文件就可以在浏览器中查看

<iframe src="文档地址"  frameborder="0" />

const docUrl = '外网可预览的地址'
const url = encodeURIComponent(docUrl)
const officeUrl = 'http://view.officeapps.live.com/op/view.aspx?src=' + url
// 在新窗口打开编码后 的链接
window.open(officeUrl, '_target')const documentUrl = '' // 将此替换为你的Word文档的URL
const officeOnlineViewerUrl = 'https://view.officeapps.live.com/op/view.aspx?src='
// 第一种
// this.previewUrl = officeOnlineViewerUrl + encodeURIComponent(documentUrl)// 第二种
// this.previewUrl = `${officeOnlineViewerUrl}${documentUrl}&embedded=true`

// 没有下载按钮的--https://view.officeapps.live.com/op/embed.aspx?src=

// 有下载按钮的--https://view.officeapps.live.com/op/view.aspx?src=

2、XDOC文档预览云服务(预览pdf、word、xls、ppt) 

 XDOC文档预览云服务

 注意:文档地址要用utf-8编码,并且外网可访问。

优点:

  1. 只需要传入文档URL,基于内容自动识别文档格式
  2. 高效、快速、实时预览,重复请求0毫秒响应
  3. 使用HTML5方式展现内容,同时适配PC端和移动端
  4. 支持PDF,OFD,DOC/X,XLS/X,PPT/X,JPG,MP4等多种文档格式

调用方法

https://view.xdocin.com/view?src=文档地址(https://)eg:
const url = 'https://view.xdocin.com/view?src=文档地址【https(http)://】可预览的地址'

JS调用:
https://view.xdocin.com/view?src=https%3A%2F%2Fview.xdocin.com%2Fdemo%2Fview.docx

 可选参数

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

 

<template><iframe:src="xsrc"frameborder="0"scrolling="auto"style="width:100%;height:100%;"></iframe>
</template><script>
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) {// 你的文档地址const file = this.src// XDOC文档预览服务地址let xurl = 'https://view.xdocin.com/view?src='// 传入文档地址xurl += encodeURIComponent(file)// 预览参数const ops = {watermark: this.watermark,// pdf: true, // word文档尝试以pdf方式显示,默认false// img: true, // 尝试以图片方式显示,默认false// "saveable": true, //是否允许保存源文件,默认falseprintable: 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 (const a in ops) {if (ops[a] != undefined) {xurl += '&' + a + '=' + encodeURIComponent(ops[a])}}// 开始预览this.xsrc = xurl}}}
}
</script><style></style>

相关文章:

  • [MQ]常用的mq产品图形管理web界面或客户端
  • MySQL数据导入:MySQL 导入 Excel 文件.md
  • vue预览pdf文件的几种方法
  • 77.Go中interface{}判nil的正确姿势
  • Windows 10/11系统自带“录屏”功能的快捷键无效的解决之道
  • C++ 数论相关题目 扩展欧几里得算法(裴蜀定理)
  • 如何实现Win系统ssh连接Ubuntu使用vscode远程敲代码
  • 跟收费说拜拜,IDEA接口调试插件推荐
  • 【RabbitMQ】死信(延迟队列)的使用
  • mysql面试题合集-基础
  • MQ面试题合集
  • Android SystemUI 介绍
  • 堆和堆排序【数据结构】
  • MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)
  • Ubuntu2204+ROS2(humble)+usb_cam内参标定
  • 【EOS】Cleos基础
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • nfs客户端进程变D,延伸linux的lock
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SpriteKit 技巧之添加背景图片
  • 程序员最讨厌的9句话,你可有补充?
  • 构建二叉树进行数值数组的去重及优化
  • 判断客户端类型,Android,iOS,PC
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 使用agvtool更改app version/build
  • 使用权重正则化较少模型过拟合
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 运行时添加log4j2的appender
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 湖北分布式智能数据采集方法有哪些?
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二开)Flink 修改源码拓展 SQL 语法
  • (分布式缓存)Redis持久化
  • (接口自动化)Python3操作MySQL数据库
  • (九)c52学习之旅-定时器
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十)c52学习之旅-定时器实验
  • . Flume面试题
  • .“空心村”成因分析及解决对策122344
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .net MySql
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .Net小白的大学四年,内含面经
  • @SpringBootApplication 包含的三个注解及其含义
  • [AIGC] Java 和 Kotlin 的区别
  • [Angular] 笔记 6:ngStyle
  • [Bugku]密码???[writeup]
  • [flink总结]什么是flink背压 ,有什么危害? 如何解决flink背压?flink如何保证端到端一致性?