前端实现在线预览pdf、word、xls、ppt等文件

2023-11-09

前端实现在线预览pdf、word、xls、ppt等文件

 


 

PDF文档在线预览功能

 

方式一: 通过a标签href属性实现

pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面。在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签href属性实现预览

<a href="文档地址"></a>

 

方式二: 通过jquery插件jquery.media.js实现

这个插件可以实现pdf预览功能(包括其他各种媒体文件)但是对word等类型的文件无能为力。

实现方式:    

<script type="text/javascript" src="jquery-1.7.1.min.js"></script>  
<script type="text/javascript" src="jquery.media.js"></script>
html结构:
      <body>
          <div id="handout_wrap_inner"></div>
      </body>
调用方式:
<script type="text/javascript">  
 $('#handout_wrap_inner').media({
		width: '100%',
		height: '100%',
		autoplay: true,
        src:'http://storage.xuetangx.com/public_assets/xuetangx/PDF/PlayerAPI_v1.0.6.pdf',
            }); 
</script>

 

 

方式三: 直接通过页面内嵌iframe

$("<iframe src='"+ this.previewUrl +"' width='100%' height='362px' frameborder='1'>").appendTo($(".video-handouts-preview"));
此外还可以在iframe标签之间提供一个提示类似这样

<iframe :src="previewUrl" width="100%" height="100%">
This browser does not support PDFs. Please download the PDF to view it: <a :href="previewUrl">Download PDF</a>
</iframe>

 

方式四: 通过标签嵌入内容

<embed :src="previewUrl" type="application/pdf" width="100%" height="100%">
此标签h5特性中包含四个属性:高、宽、类型、预览文件src!
与< iframe > < / iframe > 不同,这个标签是自闭合的的,也就是说如果浏览器不支持PDF的嵌入,那么这个标签的内容什么都看不到!

 

方式五: 标签和iframe使用差别较小

<object :src="previewUrl" width="100%" height="100%">This browser does not support PDFs. Please download the PDF to view it: <a :href="previewUrl">Download PDF</a>
</object>

 

方式六: PDFObject

PDFObject实际上也是通过标签实现的直接上代码

<!DOCTYPE html>
<html>
<head>
    <title>Show PDF</title>
    <meta charset="utf-8" />
    <script type="text/javascript" src='pdfobject.min.js'></script>
    <style type="text/css">
        html,body,#pdf_viewer{
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
        }
    </style>
</head>
<body>
    <div id="pdf_viewer"></div>
</body>
<script type="text/javascript">
    if(PDFObject.supportsPDFs){
        // PDF嵌入到网页
        PDFObject.embed("index.pdf", "#pdf_viewer" );
    } else {
        location.href = "/canvas";
    }
    
    // 还可以通过以下代码进行判断是否支持PDFObject预览
    if(PDFObject.supportsPDFs){
       console.log("Yay, this browser supports inline PDFs.");
    } else {
       console.log("Boo, inline PDFs are not supported by this browser");
    }
</script>
</html>

 

方式七: PDF.js 

PDF.js可以实现在html下直接浏览pdf文档,是一款开源的pdf文档读取解析插件,非常强大,能将PDF文件渲染成Canvas。PDF.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,一个负责API解析,一个负责核心解析。

 


 

Office文档在线预览功能

word、ppt、xls文件实现在线预览的方式比较简单可以直接通过调用微软的在线预览功能实现 (预览前提:资源必须是公共可访问的)

<iframe src='https://view.officeapps.live.com/op/view.aspx?src=http://storage.xuetangx.com/public_assets/xuetangx/PDF/1.xls' width='100%' height='100%' frameborder='1'>
</iframe>

/*src就是要实现预览的文件地址*/
/*具体文档看这微软接口文档*/

/*补充:google的文档在线预览实现同微软(资源必须是公共可访问的)*/
<iframe :src="'https://docs.google.com/viewer?url="fileurl"></iframe>

 

word文件

XDOC可以实现预览以DataURI表示的DOC文档,此外XDOC还可以实现文本、带参数文本、html文本、json文本、公文等在线预览,具体实现方法请看官方文档下面这种方式可以实现快速预览word但是对文件使用的编辑器可能会有一些限制

<a href="http://www.xdocin.com/xdoc?_func=to&_format=html&_cache=1&_xdoc=http://www.xdocin.com/demo/demo.docx" target="_blank" rel="nofollow">XDOC</a>

 

excel文件

目前excel文件已经有了类似pdf.js那样的解析sheet.js

 

总结

1、免费纯前端方式实现在线预览word、excel、ppt最优选择微软在线预览(不可编辑)
2、利用后端将文件转为图片,前端以图片形式预览(可行方案)
3、购买在线预览服务例如百度DOC文档服务、永中、I DOC VIEW等

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端实现在线预览pdf、word、xls、ppt等文件 的相关文章

  • Android Camera HAL3中预览preview模式下的数据流

    本文均属自己阅读源码的点滴总结 xff0c 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email gzzaigcn2009 64 163 com Software xff1a 系统源码Android5 1 前沿 xff
  • Android Camera HAL3中预览preview模式下的数据流

    本文均属自己阅读源码的点滴总结 xff0c 转账请注明出处谢谢 欢迎和大家交流 qq 1037701636 email gzzaigcn2009 64 163 com Software xff1a 系统源码Android5 1 前沿 xff
  • 前端实现在线预览pdf、word、xls、ppt等文件

    前端实现在线预览pdf word xls ppt等文件 PDF文档在线预览功能 方式一 通过a标签href属性实现 pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面 在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签h
  • Android Studio 2.4 Preview(译文)

    原文地址 http tools android com tech docs android profiler Android的探查Android Studio中预览2 4 新的Android探查器在Android 2 4工作室预览窗口代替了
  • Android Studio 像素化预览

    将 Android studio 更新到版本 3 1 2 后 出现预览图像像素化 模糊的问题 谁能帮我解决这个问题吗 这就是图像的渲染方式 我在 Android Studio 3 3 中遇到了同样的问题 但幸运的是我已经找到了解决方案 您必
  • 预览设备未显示在预览中

    struct ContentView Previews PreviewProvider static var previews some View ContentView previewDevice PreviewDevice rawVal
  • ASP.NET MVC V2 - 好友类

    有人有 ASP NET MVC 2 Preview 1 中伙伴类的示例吗 我似乎无法在 MSDN 上找到任何有关它的信息 但根据ScottGu他们在最新版本中为其添加了功能 我相信您正在寻找的是 MetadataTypeAttribute
  • ASP.NET MVC 2 - HTML.EditorFor() 和自定义编辑器模板

    随着 MVC 2 添加 HtmlHelper EditorFor 不可能为给定的 Model 对象创建强类型的 Display 和 Editor 模板 在摆弄它之后 我有点困惑如何将额外的 Model 数据传递到编辑器而不丢失编辑器控件的强
  • 使用 SCALER_CROP_REGION 裁剪时 Camera2 预览会拉伸

    我想在以下位置显示预览全屏使用camera2 API 我选择的相机尺寸是4160x3120 16 9 我的屏幕是1080x1920 9 16 因此 如果我希望预览正确缩放 我必须裁剪相机输出 Rect zoomCrop new Rect 0
  • setOneShotPreviewCallback 未在回调中点击 onPreviewFrame()

    我正在为我正在制作的应用程序创建视频捕获活动 并且我想捕获预览帧以用作播放按钮 我已经设置了SurfaceView up in onCreate 并连接相机的预览显示SurfaceHolder Callback private Callba
  • 使用 Android L 和 Camera2 API 处理相机预览图像数据

    我正在开发一个 Android 应用程序 它处理来自相机的输入图像并将其显示给用户 这个很简单 我注册一个PreviewCallback在相机对象上setPreviewCallbackWithBuffer 这很简单 并且可以与旧的相机 AP
  • 查看导航抽屉预览

    我正在 Android Studio 中设计一个本机导航抽屉 我在预览中看不到抽屉 因为它位于活动的左侧 超出了预览范围 现在我使用 testlayout xml 文件来查看我的更改 但很多时候我忘记将它们复制粘贴到正确的活动中 有没有办法
  • 如何预览 Java 应用程序中的任何文件?

    我正在使用 JTree 浏览文件夹的内容 我希望当用户单击文件时 软件显示它的预览 其第一页的屏幕截图 文件主要是Office文档和PDF 我设法使用从 Sun 下载的模块来对 PDF 文件执行此操作 但我想知道是否有办法使用任何软件 最好
  • 如何在 JavaScript 中创建 url 预览?

    有人可以帮助我在 JavaScript 中创建 url 预览吗 我的意思是这样的 假设我的网站上有一个链接 我希望用户能够将鼠标悬停在该链接上 并弹出一个图像 显示链接目标的外观 不用担心 CSS 我已经可以正常工作了 我只需要实际的脚本来
  • 有没有办法生成 DOCX 文件的缩略图?

    我已经使用像 ASPOSE 这样的 付费 工具完成了这项工作 但我很好奇是否有任何开源工具可以做到这一点 我确信可能有工具可以做到这一点 但如果您可以将文件转换为可以轻松光栅化的格式 那么可能值得探索 例如 将工作文档转换为 pdf 然后对
  • Android 3.0 Canary 中未显示预览

    我已经开始使用最新的 Android Studio 3 0 但预览版遇到问题 它没有在预览选项卡中显示预览 这是我所做的
  • 带摄像头预览的 SurfaceView 不会被破坏

    我有一个带有 2 个选项卡 活动 的选项卡活动 每个选项卡都有一个绘制在带有相机预览的 SurfaceView 顶部的 3d Open GL 场景 然而 根据设备方向 选项卡正在切换 问题是 当另一个活动启动时 它调用camera open
  • 未知的指令类型“toctree”。 Pycharm 出错,但 index.html 有效

    在 PyCharm 中工作时 我在 Sphinx 中创建的文档的预览模式显示 System Message ERROR 3
  • Notepad++ 将鼠标悬停在链接或颜色上进行预览?

    我想知道是否有一个选择或plugin 这使我们能够悬停预览要么是CSS颜色 or image 像这样 而且如果你将鼠标悬停在 img src 上 预览图片 尝试 Notepad 快速颜色选择器 双击十六进制颜色 会弹出一个颜色选择器以及预览
  • Android 如何从我的应用程序使用 SD 卡中的文件路径预览图像

    文件存在于sdcard image jpg我想创建我自己的应用程序 活动 按下按钮时 需要使用内置图像查看器显示存储在 SD 卡中的图像 按图像查看器中的后退按钮后 它应该返回到我正在运行的应用程序 需要一些帮助 您可以为此创建一个具有适当

随机推荐

  • STM32——CAN通信

    1 CAN通信概述 STM32F103有两个CAN 都分别有自己的发送接收邮箱 发送邮箱共有3个来发送报文 发送调度器根据优先级决定哪个邮箱的报文先被发送 共有2个接收FIFO 每个FIFO都可以存放3个完整的报文 它们完全由硬件来管理 C
  • 物体识别实例,抠图

    本示例演示了玉米图像识别的部分 处理步骤如下 首先 读取图像 灰度 然后 二值化固定物体 最后 画出物体 读取图像 灰度 read image Image XXXXX bmp decompose3 Image Image1 Image2 I
  • 关于antd table组件中,数据渲染条数跟后台传入数据不一致的问题

    如果出现表格数据渲染 跟后台传过来的数据的条数不一致的情况 绝大概率的rowkey的问题 我这边当时调试的时候 后台的数据我是存在store中的 包括在table重新渲染的时候 我这边传过来的数据条数都是跟后台的保持一致的 但是渲染的时候
  • solver_factory.hpp:76] Check failed: registry.count(type) == 1 (0 vs. 1) Unknown solver type: SGD

    问题描述 本人遇到这个问题的环境 Ubuntu16 CUDA8 Caffe Matlab2015b 具体环境安装可见个人博客 在编译matlab版本caffe时遇到 安装正常 编译caffe正常 编译matcaffe正常 测试matcaff
  • 拒绝数据裸奔,进行3DES加密很重要!(Java,JavaScript)

    一 前言 对于3DES加密百度上大部分都有很详细的解释这里就不再赘述 本文只针对Java以及JavaScript进行使用3DES加密的过程进行详细的解答 并对容易采坑以及容易疑惑的地方进行详细解释 注意点 1 3DES加密key 必须为24
  • yoloe 超过yolox和yolov5

    号称超过yolox和yolov5的PP YoLoE 开源地址 GitHub PaddlePaddle PaddleDetection Object Detection toolkit based on PaddlePaddle It sup
  • jquery validation engine ajax,jquery ajax validation engine not working

    my jquery validation form is not validate here is the code like document ready function frm validationEngine validate HD
  • 在vscode中的js文件中自动补全html标签

    code 首选项 settings 查找settings json 然后在json文件中加入 emmet includeLanguages javascript html
  • 汉德笔试,感觉有些难的手机密码的动态规划题

    汉德公司的笔试编程题有两个 一个很简单 另一个感觉是加分题 当场没做出来后来做出来了 1 充电桩 N个电桩 第一个输入为ele数组 就是能充多少电 第二个输入为耗电数组 到下一站费多少电 要求输出为从任意一个充电桩进入 能跑一圈 则输出这个
  • C double转char字符串

    找个double转char字符串的代码 国内搜出来的都是些什么狗屎 翻墙出去 一搜就有几种不错的方法 方法1 使用sprintf https cboard cprogramming com c programming 38507 doubl
  • android里用Paint画圆环的时候,让圆环的笔头头部变圆

    DrawArc画圆环的时候 如果设置width过大 那么直角的笔头会画得很丑 这个时候使用以下这句就行了 Piant setStrokeCap Cap ROUND
  • xinput1_3.dll缺失了如何去修复?xinput1_3.dll解决方法分享

    缺失了xinput1 3 dll文件 对应用程序或游戏的正常运行造成了严重的影响 这个动态链接库文件 DLL 是由Microsoft Corporation开发的 它是一个重要的Windows系统文件 提供了针对Xbox 360控制器的输入
  • eclipse error: * could not be resolved

    转自 http lihaichuan blog 51cto com 498079 1060466 打开Eclipse后 编辑c c 编译时出错 could not be resolved 但运行结果正确 解决办法 在eclipse上 pro
  • Nginx实战(四) 限速功能

    本文转载至 http blog csdn net u012486840 article details 52787275 如果很多用户 同一时刻下载nginx服务器上面的资源 这样会对nginx服务器的I O产生极大负担 所以对nginx服
  • 备份文件下载

    一 备份文件下载 1 网站源码 开启题目 点开链接后 进入环境 可以看到常见网站源码备份文件的后缀和备份文件名 打开burp暴力破解flag 设置打开代理 开始抓包 2 bak文件 开启bak题目 点开链接 进入环境 出现这个界面 打开文件
  • flask url 构建

    from flask import Flask redirect url for import time app Flask name app route def hello world return hello world app rou
  • Qt QTableWidget设置表头背景色不成功的原因

    QTableWidget没有设置背景色的函数 通过Qss样式来设置背景色 m pTable gt horizontalHeader gt setStyleSheet QHeaderView section background color
  • Java8的新特性以及使用

    1 通过10个示例来初步认识Java8中的lambda表达式 我个人对Java 8发布非常激动 尤其是lambda表达式和流API 越来越多的了解它们 我能写出更干净的代码 虽然一开始并不是这样 第一次看到用lambda表达式写出来的Jav
  • 缺陷检测方法 halcon

    文章预览 前言 1 缺陷检测分类 1 1 标准缺陷检测 1 2 非标缺陷检测 针对行业特性 2 行业难点 3 常规缺陷检测算法 Halcon 3 1 差分法 3 1 1 blob分析 差分 3 1 2 模板匹配 差分 3 1 3 两种检测方
  • 前端实现在线预览pdf、word、xls、ppt等文件

    前端实现在线预览pdf word xls ppt等文件 PDF文档在线预览功能 方式一 通过a标签href属性实现 pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面 在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签h