前端根据url在线预览功能

这篇具有很好参考价值的文章主要介绍了前端根据url在线预览功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

加载脚本


  // word
  await this.utils.loadScript('https://unpkg.com/promise-polyfill/dist/polyfill.min.js')
  await this.utils.loadScript('https://unpkg.com/jszip/dist/jszip.min.js')
  await this.utils.loadScript('https://unpkg.com/docx-preview@0.1.9/dist/docx-preview.min.js')

  // excel
  await this.utils.loadScript('https://unpkg.com/xlsx/dist/xlsx.full.min.js')

  // pdf
  await this.utils.loadScript('https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.9.179/pdf.min.js')

WORD

// 元素
<div id="viewModalContainer"></div>

// 方法
  const data = await fetch(url)
    .then((response) => response.blob())
    .then((res) => {
      this.$('dialog_lkw0jna2').show()
      docx.renderAsync(res, document.getElementById('viewModalContainer'), null, {
        // ignoreWidth: true,
        // ignoreHeight: true,
      }).then(result => {
        console.log('result', result)
      })
    })
  return data

excel

// 元素
<div id="excelContainer"></div>

// 方法
  const data = await fetch(url)
    .then((response) => response.arrayBuffer())
    .then((res) => {
      this.$('dialog_lkwbvqrc').show()
      const wb = XLSX.read(res);
      console.log('wb', wb)
      // const ws = wb.Sheets[wb.SheetNames[0]];
      // console.log('ws', ws)
      // const html = XLSX.utils.sheet_to_html(ws)
      let html = '';

      wb.SheetNames.forEach(function (name, index) {
        let ws = wb.Sheets[name];
        let str = XLSX.utils.sheet_to_html(ws, { header: 1, defval: '' });
        // 只截取table的内容
        let startNo = str.indexOf(`<table>`);
        let endNo = str.indexOf(`</table>`);
        str = str.substring(startNo, endNo + `</table>`.length);

        str = str.replace(/(\b(?:id|t|v)=".*?")/g, '');
        str = str.replace('<table>', `<table border="1" style="border-collapse:collapse; width: 100%; border:1px solid #666666; margin-bottom:5px;font-size:14px;margin: 15px 0;">`);

        html += str;
      })

      const dom = document.getElementById('excelContainer')
      dom.innerHTML = html
    })

pdf

// 有个canvas元素
<canvas id="pdfContainer"></canvas>

// 方法
  const loadingTask = pdfjsLib.getDocument(url)
  loadingTask.promise.then(res => {
    this.$('dialog_lkwbvqrg').show()
    // 获取 canvas 元素
    const canvas = document.getElementById('pdfContainer')

    res.getPage(1).then(function (page) {
      const viewport = page.getViewport({ scale: 1 });
      const context = canvas.getContext('2d');
      canvas.height = viewport.height;
      canvas.width = viewport.width;

      page.render({
        canvasContext: context,
        viewport: viewport
      });
    }).catch(error => {
      console.log('error:', error)
    })
  })

img

  • 根据使用的组件库直接预览
this.utils.previewImage({ current: rowData.path })

video

  • 新窗口打开
window.open(rowData.path)

文章来源地址https://www.toymoban.com/news/detail-633504.html

到了这里,关于前端根据url在线预览功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue 中从后端获取到文件的 url 地址,前端根据 url 地址下载文件

    项目用的是 vben admin 框架,用的是 vue3 + TS 项目需求数据导出功能,前端需要实现文件下载功能 后端返回的是文件的 url 地址 (本项目中返回的是阿里云 oss 的文件地址) 从后端得到的是一个 url 地址,先通过 fetch api 请求这个 url 地址并转换成 blob 对象,通过 URL.createObjectUrl() 将 blo

    2024年02月06日
    浏览(49)
  • vue3实现海康威视根据海康插件进行监控实时预览和回放功能

    因为我的文章已经写过基于vue实现海康web插件进行视频播放开箱即用文章,这个文章是利用 vite+vue3+js 进行编写的,大致内容跟vue2一样,拿过去能直接用。 至于我为什么要用js而不用ts,因为海康提供的三个脚本为js语言的,ts尝试过一次,我道行太浅,没搞明白。 这些代码是

    2024年02月05日
    浏览(96)
  • 【前端】根据后端返回的url进行下载并设置文件下载名称

            在我们项目当中存储文件是存储到厂商的服务器上的,然后厂商返回一个可以直接下载url地址,但是前端使用这个url下载的时候永远都是保存一个名字,这时候我们就需要设置文件保存的名称,         那么如何实现呢?使用了fetch将url转换成了blob即可。 代码

    2024年02月04日
    浏览(62)
  • 前端实现在线预览、编辑Office文档(vue版)

    使用插件:Spire.Cloud在线Office文档编辑器(官网:冰蓝科技在线编辑) 无需安装,在 index.html 里面引入即可 重点:支持在线创建、编辑、保存和打印 Office (Word / Excel / PPT) 文档 助您轻松实现高效率、无纸化办公 使用浏览器打开:https://cloud.e-iceblue.cn/,点击右上角头像注册/登

    2024年02月12日
    浏览(65)
  • 前端js react vue怎么实现在线预览doc文档

    先说结论: 目前在纯前端层面没有很好的方案,基本都需要服务端的介入。 优点 :简单易用,无需配置 缺点 :文档需要支持外网访问,且文档会是公开可见的,所以对于一些内部敏感的文档来说,这个显然是不可行的。 需要后端介入配合 onlyoffice地址 这个也要先在服务器

    2024年02月15日
    浏览(85)
  • vue2实现海康威视根据海康插件进行监控实时预览和回放功能,全套代码,开箱即用。

     这是一套拿到手就能直接用的根据海康提供的摄像机节点实时预览和回放的全步骤代码,开箱即用。  我的是基于vue2写的,vue3可以看我下一篇文章。 很多人在开发vue项目的时候,不知道怎么去开发视频实时预览和回放功能,然后一直查文档,再去看别人写的项目,就是无

    2023年04月15日
    浏览(80)
  • 在线CAD前端mxdraw和mxcad库预览和编辑DWG图纸

    DWG格式是AutoCAD软件的独有格式文件,通常是通过桌面端的CAD软件打开,如果要在网页内打开CAD图纸,则需要提前将CAD图纸用梦想CAD控件提供的后台程序转换成wgh格式,再进行网页浏览。 其中转换方法和原理请查看快速入门的《如何在自己系统中浏览dwg文件》章节,如下图所

    2024年02月04日
    浏览(62)
  • 分享几款节日实用前端动画特效(附效果图及在线预览)

    分享7款有趣也实用的前端动画特效 其中有CSS动画、canvas动画、js小游戏等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 基于canvas实现的一款节日背景动画 当鼠标悬停时会在悬停处不断的冒爱心等动画效果

    2024年01月20日
    浏览(75)
  • Java 实现word、excel、ppt、txt等办公文件在线预览功能!

    如何用 Java 实现word、excel、ppt、txt等办公文件在线预览功能?本文告诉你答案! java 实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务,不过需要收费。 如果想要免费的,可以用 openoffice,实现原理就是: 通过第三方工具op

    2024年02月11日
    浏览(66)
  • vue2 pdfjs-2.8.335-dist pdf文件在线预览功能

    1、首先先将 pdfjs-2.8.335-dist 文件夹从网上搜索下载,复制到public文件夹下. 2、在components下新建组件PdfViewer.vue文件 3、在el-upload 中调用 pdf-viewer 组件 4、在el-upload 中的 on-preview方法中加上对应的src路径  internalPreview(file) { //判断需要预览的地方加 props—pdfView                

    2024年01月19日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包