vue - - - - - 在线预览常见文件格式 .doc, .docx, .xls, .xlsx,.pdf,.ofd

Vue实现文档在线预览功能,上传预览PDF、Word等office文件 阅读详情
AI摘要

文章介绍了HTML5的embed、iframe和object标签用于在线预览文件的方法,特别是PDF和图片。提到了预览Word、Excel等Microsoft文件的特定处理方式,并给出Vue.js的代码示例。还指出了预览过程中可能遇到的访问权限和文件格式问题。,

关于一些文件的在线预览,最简易的实现方式是什么呢?

写在前面

  • .png, .jpg, .jpeg等图片格式 直接预览http/https地址即可
  • .pdf文件直接预览http/https地址即可
  • .doc, .docx, .xls, .xlsx等类型文件,需要在预览地址之前拼接上https://view.officeapps.live.com/op/view.aspx?src=
  • .ofd等类型文件,需要在预览地址之前拼接上https://ofd.xdocin.com/view?src=

1.HTML5 - embed标签

1.1 注意⚠️

embed标签定义嵌入的内容,这个标签是自闭合的,也就是说如果浏览器不支持PDF的嵌入,那么这个标签的内容什么都看不到。

1.2 使用方式

【HTML embed标签】

属性值描述
heightpixels规定嵌入内容的高度。
widthpixels规定嵌入内容的宽度。
srcURL规定被嵌入内容的 URL。
typeMIME_type规定嵌入内容的 MIME 类型。注:MIME = Multipurpose Internet Mail Extensions。
<embed :src="iframeSrc" width="100%" height="100%" />

2. HTML - iframe标签

2.1 注意⚠️

iframe方法是嵌入PDF的最简单方法之一。但是,如果iframe浏览器不支持PDF呈现,则可能无法提供足够的后备内容

2.2 使用方式

【HTML iframe标签】

<iframe :src="iframeSrc" width="100%" height="100%">
  该浏览器无法支持PDF,请点击查看:
  <a :href="iframeSrc">下载 PDF</a>
</iframe>

3. HTML - object

3.1 注意⚠️

与embed不同,object如果浏览器不支持PDF嵌入,则该元素可提示内容。所有浏览器都支持object元素,但是,每个浏览器中的实现方式通常存在差异。如果您使用该object元素,请务必在浏览器和操作系统中彻底测试您的页面。

3.2 使用方式

【HTML object标签】

<object :data="iframeSrc" type="application/pdf" width="100%" height="100%">
    该浏览器不支持PDF.请点击查看:
    <a :href="iframeSrc">下载 PDF</a>.</p>
</object>

4. 更多预览方式

【vue-pdf】

5. 代码示例

  <!-- 预览弹窗 -->
  <a-modal
    class="preview-modal"
    :class="[isImage ? '' :'preview-file']"
    v-model:visible="visible"
    title="预览"
    :width="isImage?'500px':'80%'"
    :afterClose="afterClose"
    :destroyOnClose="true"
    :footer="null"
  >
    <img v-if="isImage" :src="iframeSrc" alt />
    <embed v-else :src="iframeSrc" type="application/pdf" width="100%" height="100%" />
  </a-modal>


  <script>
    const imageFileType = " .png, .jpg, .jpeg"; // 图片格式,单独预览
    const microsoftFileType = " .doc, .docx, .xls, .xlsx"; // 微软文件格式,单独预览
  	 // 预览相关信息数据
    const annexConfig = reactive({
      updateData: {},
      headers: { Authorization: localStorage.getItem("token") },
      action: '',
      accept: "", // 需要支持的文件格式
      fileList: [], // 文件列表
      visible: false, // 是否预览
      isImage: false, // 是否为图片格式预览
      iframeSrc: "" // 预览地址
    });
    
    /**
     * 预览附件
     */
    const PreviewAnnex = file => {
      const previewName = file.name || file.fileName;
      let index = previewName.indexOf(".");
      const type = previewName.slice(index);
      const PREFIX = "https://view.officeapps.live.com/op/view.aspx?src="; // word、excel 等Microsoft办公文件预览之前需要先拼接上
      const OFDPREFIX = "https://ofd.xdocin.com/view?src="; // ofd文件预览前缀

      const previewPath = file.fileUrl;

      let path = "";
      if (imageFileType.includes(type)) {
        // 图片格式
        path = `${previewPath}`;
        annexConfig.isImage = true;
      } else if (microsoftFileType.includes(type)) {
        // 微软文件格式
        path = `${PREFIX}${encodeURIComponent(previewPath)}`;
        annexConfig.isImage = false;
      } else if (type == "ofd") {
        // ofd格式
        path = `${OFDPREFIX}${encodeURIComponent(previewPath)}`;
        annexConfig.isImage = false;
      } else {
        // pdf文件格式
        path = `${previewPath}`;
        annexConfig.isImage = false;
      }

      annexConfig.visible = true;
      annexConfig.iframeSrc = path;
    };
  </script>

6. 遇到的问题!!!!!!!!

在预览word和excel文件的时候,因为使用的是https://view.officeapps.live.com/op/view.aspx?src=文件地址这种方式。
这种方式可以预览的前提是:

  1. 文件地址外网可以访问
  2. 文件地址返回头的header是对应的文件格式!!!!!!!

在这里插入图片描述

vue docx-preview实现docx文件在线预览 之前一般做项目进行文件浏览的时候基本都是用的window.open+url的形式打开文件,进行浏览操作的,但是这种打开方式只能够在线浏览如jpg、png、pdf这类文件,对于文档类型docx这种则是用下载的方式打开的。这次甲方爸爸想要直接预览文档,于是就来使docx-preview这个在线预览组件了。(这个插件只能够实现docx后缀的文件,doc文件打不开滴) 阅读详情

相关推荐

前端vue3实现本地及在线文件预览(含pdf/txt/mp3/mp4/docx/xlsx/pptx)

本地或内网预览需要借助插件实现,pdf、mp3、mp4等主要靠原生标签或浏览器自带功能,尽量减少了插件的安装。

Sylvasylva的博客 2万+

vue预览doc,docx,xlsx,pdf等文件方法

vue预览doc,docx文件总结

每天都要加油的博客 8283

Vue项目中实现PDF、Word、Excel在线预览的完整方案

在后台管理系统、OA平台、低代码项目中,在线预览PDF、Word、Excel文档已成为高频需求,其核心难点不在于文件读取,而在于多格式解析、排版保真与浏览器兼容性。前端处理通常借助pdf.js解析PDF并基于Canvas渲染,docx-preview通过解压ZIP结构还原Word样式,SheetJS将Excel单元格数据转为JSON后渲染表格;后端则常用LibreOffice转码为PDF以规避复杂样式失真;第三方在线服务则受限于公网URL。理解不同方案的原理与技术边界,有助于根据业务场景选择最优路径。实际开

weixin_34408717的博客 347

vue 在线预览 word ,Excel,pdf,图片 数据流 内网文件流 亲测有效(word 目前支持docx文件以及doc文件(doc需要后端处理))

vue 在线预览 word ,Excel,pdf,图片 数据流 内网文件流 亲测有效

记录常见的问题以及解决办法 3万+

Vue中实现PDF、Word、Excel在线预览的完整方案解析

文档在线预览是企业级前端开发中的高频需求,PDF、Word、Excel三种格式因底层结构不同,无法用统一代码直接渲染:PDF是版式文档,需借助pdf.js按页绘制到Canvas;Word本质为ZIP+XML结构,可通过docx-preview解析还原内容;Excel则适合用SheetJS读取表格数据并生成HTML视图。掌握这些技术原理,开发者便能在Vue项目中灵活实现文件在线查看、带鉴权的流文件加载、多格式统一分发等工程能力。无论是内部管理系统还是SaaS应用,合理选型与封装都能有效提升用户体验,降低后端转

weixin_34025051的博客 336

微信小程序 - 在线预览 Office 文件(doc / docx / xls / xlsx / ppt / pptx / pdf)

效果图 前言 网上大部分教程功能有问题且文章无逻辑混乱,本文将提供优秀的示例。 本文只适用于预览服务端接口返回的网络地址文件,“本地上传”文件并预览原理一样, 例如服务端接口返回了文件地址(路径),并携带了文件类型等数据, { file:'http://example.com/somefile.pdf', type:'pdf', size:18434 } 此时需要在小程序中打开并预览,如下图所示: 完整代码 非常详细的注释,代码干净整洁无任何其他无用代码。 您可以找个页面或直接按

🏆 前端领域优质创作者 1万+

vue 实现文件预览(支持pdf,xls、xlsx,doc、docx,jpg、jepg、png)

其中Excel在展示的时候会显示不全,需要取数组对象索引的长度最长的作为赋值对象。预览的部分展示在dialog中,根据点击的文件类型进行判断展示。

Yane410的博客 2万+

Vue纯前端文档预览方案:基于pdf.js、Mammoth.js、SheetJS实现全格式支持

在Web开发中,文档预览是提升用户体验的关键功能,其核心挑战在于如何高效、准确地解析和渲染多种格式的文件。传统方案依赖后端转换,存在架构复杂、性能瓶颈等问题。纯前端预览技术通过JavaScript库直接在浏览器中处理文件,实现了架构简化与性能提升。其技术价值在于降低服务器负载、提升响应速度并增强应用的可移植性。该技术广泛应用于知识库、在线教育、SaaS产品等需要即时查看Word、Excel、PPT、PDF等文件的场景。本文聚焦于**纯前端文档预览**的实现,通过整合**pdf.js**、Mammoth.js

weixin_34023982的博客 363

Vue在线预览文件(docx/xlsx/pdf)

在Vue开发中,可以利用一些第三方插件来实现文件预览功能。例如使用vue-office插件来实现文件的预览。注意:据网上资料所说,此插件还存在部分缺陷,比如docx的艺术字体、excel的多种数据格式解析不准确的问题,对此有很高要求的小伙伴慎用。文件上传时触发handleChange事件,执行操作:1. 解析文件名匹配对应预览组件,利用previewFileCom函数,2. 设置预览文件的url,3. 展示预览弹窗预览组件渲染完成、渲染失败时分别调用**render

Cxiaomu的博客 6819

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法 在上文《强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题》的基础上,实现了LSTM+MLP的Policy Gradient算法。 实现过程如下: import argparse, math, os, sys import numpy as np import gym from gym import wrappers import matplotlib.pyplot as plt import torch fr

hhy_csdn的博客 5636

”COMSOL“竟然如此简单!我悟了!!

COMSOL Multiphysics具有强大的多物理场全耦合仿真分析功能、高效的计算性能,可以保证数值仿真的高度精确,已被广泛应用于各个学科领域,近年来运用COMSOL来解决电化学实际工程问题也越来越普遍。

C1012562281的博客 3447

vue项目前端预览pdf、docx、xls

预览pdf、doc、xlsoffice online私人文档预览云服务pdfdocxls office online 微软office平台提供的文档预览服务 https://view.officeapps.live.com/op/view.aspx?src+文档地址 文档地址必须是域名80端口且公开访问 缺点由于不可抗力概率访问失败 私人文档预览云服务 XDOC(免费) officeweb365 ...

diu拿星的博客 9872

Simpack实战:5分钟搞定轨道车辆车轮不圆的3种定义方法(附详细参数设置)

本文详细介绍了在Simpack中定义轨道车辆车轮不圆的3种高效方法:Radius deviations、Fourier coefficients和Harmonic function,并提供了详细的参数设置指南。通过实战案例和参数优化技巧,帮助工程师快速掌握车轮不圆度的定义与仿真,提升轨道车辆动力学分析的准确性和效率。

weixin_29292535的博客 201

docx、pptx、xlsx、pdf文件预览

docx、pptx、xlsx、pdf 文件预览。

weixin_60053942的博客 1150

C#精准获取Windows已安装应用清单的完整方案

Windows已安装应用识别是IT资产管理、安全合规与自动化运维的基础能力。其核心原理在于突破文件系统表象,以注册表为可信数据源,分层解析HKLM/HKCU、64位/32位视图及MSI Products路径中的元数据。技术价值体现在可验证(如过滤SystemComponent=1)、可关联(通过ProductCode绑定补丁与许可证)、可操作(启动路径二次验证+卸载命令沙箱执行)。典型应用场景包括终端合规审计、软件资产清查、静默卸载脚本开发及多版本应用聚合分析。本文聚焦C#原生实现,覆盖注册表四路采集、La

weixin_33552698的博客 634

SRE校招面试全攻略:从基础理论到实战场景解析

本文为SRE(站点可靠性工程)校招面试提供全面攻略,涵盖计算机基础、运维核心技能、场景设计与系统架构等关键模块。文章结合真实面试真题,解析了从Linux原理、网络协议到容器化、监控告警等实战考点,并分享了高可用设计、故障排查等工程思维,旨在帮助应届生夯实基础、理清思路,从容应对SRE校招挑战。

bush的博客 643

前端用vue写文件预览txt,pdf,doc|| docx,xls || xlsx 等格式文件

这里写自定义目录标题引入htmljs 引入 import mammoth from 'mammoth' import XLSX from 'xlsx' html <el-dialog fullscreen :visible.sync="previewDialogVisible"> <iframe v-if="pdfContent.length > 0" :src="pdfContent" width="100%" :height="HIfram" framebo

weixin_44690999的博客 3848

CEH Practical 实战考试真题与答案

CEH Practical 是 EC-Council 推出的Certified Ethical Hacker(CEH)认证项目中的一项高级动手实践考试。它不同于传统的理论考试,侧重于在真实环境中检验考生的实操能力。

sgafdgdagd的博客 967

H5实现附件预览功能(doc/docx、xls/xlsx、ppt/pptx、pdf)

一、H5用以下方式即可实现: (钉钉小程序官方目前没有预览附件的API,也可用这种方法实现) doc/docx、xls/xlsx、ppt/pptx可直接用以下链接打开: 注意:使用此方法,附件链接必须是域名。 https://view.officeapps.live.com/op/view.aspx?src= + 文档url let url = "https://view.officeapps.live.com/op/view.aspx?src=" + 文档url; //两种方式 window.open(u

weixin_42284117的博客 1万+

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3411

Vue3 - Element Plus 表格组件 el-table “表格行数据中又嵌套了二维对象数组“,按平级循环渲染(嵌套数组视为同级行数据), 对嵌套的数组循环展示为表格,智能合并行或列详细教程

vue3,nuxt3,element-plus,table表格组件,el-table,vue3element表格组件,数据中有二维数组怎么遍历循环显示,表格数据带二级数组怎么循环渲染显示,表格数据中存在一个数组要怎么才能显示到表格,el-table表格合并详细教程示例,table表格如果对象里面还有对象数组那该怎么去渲染,平常都是数组中一个对象渲染成一行,每行中还有嵌套数组怎么办,每个行数据下还有一个数组怎么显示,怎么把表格相同的数据合并为一行,合并上下两行相同数据单元格,合并行或列如果遇到相同单元格就合

🏆 前端领域优质创作者 1万+

vue2中预览pdf、xlsx、xls、doc、docx

【代码】vue2中预览pdf、xlsx、xls、doc、docx。

BaekZh的博客 2326

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

vue2.6附件预览及下载

在本文中,我们详细介绍了如何在 Vue 2.6 项目中实现多种文件类型的预览和下载功能。通过整合不同的技术和工具,我们成功解决了不同类型文件的预览需求,并提供了一个通用的下载解决方案。

weixin_47684422的博客 1273

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue-office预览docx,excel,pdf文件

vue-office不支持doc文件的预览。对xls文件进行预览时,必须设置options={xls:true}如果是vue2.6版本或以下还需要额外安装 @vue/composition-api。

learn_first的博客 1642

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

vue2、3 预览 docx、xlsx、pdf

注意点:经过实际使用发现,不支持 doc slx,就是那种老版本的office,一般最新的,像docx 、xlsx 等都是可以的。因项目中总是有用到预览 office 三件套,根据网上的一些资料还有实际的一些运用,所以把他记录下来。

念念小小的博客 942

vue项目,内网预览.xls .pptx .ppt .doc .docx .xlsx等格式的文件方法推荐

内网预览word、pptf、exl等文件

weixin_56723577的博客 5018
上一篇: nodejs - - - - - nodejs连接数据库报错: client-does-not-support-authentication-protocol-requested-by-server
下一篇: antd-vue - - - - - table增加统计行?默认勾选?
Dark_programmer
博客等级 码龄7年 9073粉丝 307原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值