文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

js前端如何实现图片文本文件预览功能

2023-07-02 16:47

关注

这篇“js前端如何实现图片文本文件预览功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js前端如何实现图片文本文件预览功能”文章吧。

实现方案

找了网上的实现方案,效果看起来不错,放在下面的表格里,里面有一些是可以直接通过npm在vue中引入使用。

文档格式老的开源组件替代开源组件
word(docx)mammothdocx-preview(npm)
powerpoint(pptx)pptxjspptxjs改造开发
excel(xlsx)sheetjs、handsontableexceljs(npm)、handsontable(npm)(npm)
pdf(pdf)pdfjspdfjs(npm)
图片jquery.verySimpleImageViewerv-viewer(npm)

docx文件实现前端预览

代码实现

import { defaultOptions, renderAsync } from "docx-preview";renderAsync(buffer, document.getElementById("container"), null,options: {       className: string = "docx", // 默认和文档样式类的类名/前缀       inWrapper: boolean = true, // 启用围绕文档内容渲染包装器       ignoreWidth: boolean = false, // 禁止页面渲染宽度       ignoreHeight: boolean = false, // 禁止页面渲染高度       ignoreFonts: boolean = false, // 禁止字体渲染       breakPages: boolean = true, // 在分页符上启用分页       ignoreLastRenderedPageBreak: boolean = true,//禁用lastRenderedPageBreak元素的分页       experimental: boolean = false, //启用实验性功能(制表符停止计算)       trimXmlDeclaration: boolean = true, //如果为真,xml声明将在解析之前从xml文档中删除       debug: boolean = false, // 启用额外的日志记录   });

实现效果

js前端如何实现图片文本文件预览功能

pdf实现前端预览

代码实现

import * as PDFJS from "pdfjs-dist/legacy/build/pdf";// 设置pdf.worker.js文件的引入地址PDFJS.GlobalWorkerOptions.workerSrc = require("pdfjs-dist/legacy/build/pdf.worker.entry.js");// data是一个ArrayBuffer格式,也是一个buffer流的数据PDFJS.getDocument(data).promise.then(pdfDoc=>{    const numPages = pdfDoc.numPages; // pdf的总页数    // 获取第1页的数据    pdfDoc.getPage(1).then(page =>{     // 设置canvas相关的属性     const canvas = document.getElementById("the_canvas");     const ctx = canvas.getContext("2d");     const dpr = window.devicePixelRatio || 1;     const bsr =       ctx.webkitBackingStorePixelRatio ||       ctx.mozBackingStorePixelRatio ||       ctx.msBackingStorePixelRatio ||       ctx.oBackingStorePixelRatio ||       ctx.backingStorePixelRatio ||       1;     const ratio = dpr / bsr;     const viewport = page.getViewport({ scale: 1 });     canvas.width = viewport.width * ratio;     canvas.height = viewport.height * ratio;     canvas.style.width = viewport.width + "px";     canvas.style.height = viewport.height + "px";     ctx.setTransform(ratio, 0, 0, ratio, 0, 0);     const renderContext = {       canvasContext: ctx,       viewport: viewport,     };     // 数据渲染到canvas画布上     page.render(renderContext);    })})

实现效果

js前端如何实现图片文本文件预览功能

excel实现前端预览

代码实现

// 加载excel的数据(new ExcelJS.Workbook().xlsx.load(buffer)).then(workbook=>{   // 获取excel的第一页的数据   const ws = workbook.getWorksheet(1);   // 获取每一行的数据   const data = ws.getRows(1, ws.actualRowCount); })// 渲染页面import { HotTable } from "@handsontable/vue";<hot-table  :settings="hotSettings"></hot-table>hotSettings = {   language: "zh-CN",   readOnly: true,   data: this.data,   cell: this.cell,   mergeCells: this.merge,   colHeaders: true,   rowHeaders: true,   height: "calc(100vh - 107px)",   // contextMenu: true,   // manualRowMove: true,   // 关闭外部点击取消选中时间的行为   outsideClickDeselects: false,   // fillHandle: {   //   direction: 'vertical',   //   autoInsertRow: true   // },   // afterSelectionEnd: this.afterSelectionEnd,   // bindRowsWithHeaders: 'strict',   licenseKey: "non-commercial-and-evaluation"}

实现效果

js前端如何实现图片文本文件预览功能

pptx的前端预览

主要是通过jszip库,加载二进制文件,再经过一些列处理处理转换实现预览效果,实现起来比较麻烦,就不贴代码了。

实现效果

js前端如何实现图片文本文件预览功能

以上就是关于“js前端如何实现图片文本文件预览功能”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯