返回顶部
首页 > 资讯 > 精选 >js前端如何实现图片文本文件预览功能
  • 509
分享到

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

2023-07-02 16:07:58 509人浏览 薄情痞子
摘要

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

这篇“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文件实现前端预览

    代码实现

    • 首先npm i docx-preview

    • 引入renderAsync方法

    • 将blob数据流传入方法中,渲染word文档

    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实现前端预览

    代码实现

    • 首先npm i pdfjs-dist

    • 设置PDFJS.GlobalWorkerOptions.workerSrc的地址

    • 通过PDFJS.getDocument处理pdf数据,返回一个对象pdfDoc

    • 通过pdfDoc.getPage单独获取第1页的数据

    • 创建一个dom元素,设置元素的画布属性

    • 通过page.render方法,将数据渲染到画布上

    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实现前端预览

    代码实现

    • 下载exceljs、handsontable的库

    • 通过exceljs读取到文件的数据

    • 通过workbook.getWorksheet方法获取到每一个工作表的数据,将数据处理成一个二维数组的数据

    • 引入@handsontable/vue的组件HotTable

    • 通过settings属性,将一些配置参数和二维数组数据传入组件,渲染成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前端如何实现图片文本文件预览功能”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

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

    本文链接: https://lsjlt.com/news/343019.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • js前端如何实现图片文本文件预览功能
      这篇“js前端如何实现图片文本文件预览功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js前端如何实现图片文本文件预览功能...
      99+
      2023-07-02
    • js前端实现word excel pdf ppt mp4图片文本等文件预览
      目录前言实现方案docx文件实现前端预览代码实现实现效果pdf实现前端预览代码实现实现效果excel实现前端预览代码实现实现效果pptx的前端预览实现效果总结前言 因为业务需要,很多...
      99+
      2024-04-02
    • JQ图片文件上传之如何实现前预览功能
      小编给大家分享一下JQ图片文件上传之如何实现前预览功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、先准备一个divonchange触发事件<input type=&q...
      99+
      2024-04-02
    • JS+HTML5如何实现图片在线预览功能
      这篇文章给大家分享的是有关JS+HTML5如何实现图片在线预览功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下<!DOCTYPE html> ...
      99+
      2024-04-02
    • JS如何实现上传图片实时预览功能
      这篇文章主要为大家展示了“JS如何实现上传图片实时预览功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何实现上传图片实时预览功能”这篇文章吧。前段时间在...
      99+
      2024-04-02
    • Vue如何实现预览文件功能
      这篇文章主要讲解了“Vue如何实现预览文件功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue如何实现预览文件功能”吧!安装 //docx文档预览组件npm inst...
      99+
      2023-07-05
    • JS如何实现获取图片大小和预览功能
      这篇文章主要为大家展示了“JS如何实现获取图片大小和预览功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何实现获取图片大小和预览功能”这篇文章吧。具体如...
      99+
      2024-04-02
    • jQuery如何实现上传图片前预览效果功能
      这篇文章将为大家详细讲解有关jQuery如何实现上传图片前预览效果功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果如图:代码如下:<!doctype ...
      99+
      2024-04-02
    • jquery如何实现图片上传前本地预览
      这篇文章主要为大家展示了“jquery如何实现图片上传前本地预览”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jquery如何实现图片上传前本地预览”这篇文章吧...
      99+
      2024-04-02
    • 如何实现Ajax上传图片及上传前先预览功能
      这篇文章将为大家详细讲解有关如何实现Ajax上传图片及上传前先预览功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。上传之前的预览方式一先来说说图片上传之前的预览问题。这...
      99+
      2024-04-02
    • JavaScript如何实现txt文件上传预览功能
      小编给大家分享一下JavaScript如何实现txt文件上传预览功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天做项目刚好...
      99+
      2024-04-02
    • vue3如何实现PDF文件在线预览功能
      目录概述正文创建 vue3 项目添加 PDF 预览插件总结概述 之前我们用 Reactjs + React-PDF 实现了 React 版的 PDF 文件预览,今天我们用 Vue3 ...
      99+
      2024-04-02
    • HTML5中怎么实现本地图片预览功能
      这期内容当中小编将会给大家带来有关HTML5中怎么实现本地图片预览功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。问题描述假设我们在 HTML 里面有一个图片上传控件:...
      99+
      2024-04-02
    • 如何利用原生JS实现图片预览加上传(前后端交互)
      目录前言效果大致如下前端代码后端代码总结前言 最近在写vue项目的时候发现了个Vant的一个upload的图片上传的组件,就好奇了一下下,于是萌生了一个自己手写一个图片上传的组件的想...
      99+
      2024-04-02
    • AngularJs如何实现上传前预览图片
      小编给大家分享一下AngularJs如何实现上传前预览图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!demo.html:&l...
      99+
      2024-04-02
    • 一文详解如何在vue中实现文件预览功能
      目录文件流docx的预览pdf的预览xlsx预览图片的预览结语文件流 如何将各种文件的文件流(blob)转化为线上可以直接预览的数据,这里简单介绍四种不同类型的文件预览。分别是pdf...
      99+
      2022-11-13
      vue实现预览多种文件 vue文件预览功能 vue实现文件预览
    • vue.js如何实现图片上传预览及图片更换功能
      这篇文章将为大家详细讲解有关vue.js如何实现图片上传预览及图片更换功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:样式以及效果图一并展示1.HTML<...
      99+
      2024-04-02
    • 前端如何上传图片文件
      效果图html代码js 效果图 效果: 这篇博客必须要后台调用你的js函数,如果后台不打算调用你的js函数可以放弃此篇博客了,或者自己将代码改良。如果后台接受该代码可以参考这篇文...
      99+
      2023-09-24
      前端 javascript php
    • element前端如何实现压缩图片功能
      这篇文章主要讲解了“element前端如何实现压缩图片功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“element前端如何实现压缩图片功能”吧!实现效果如下图所示,从 580kb -&g...
      99+
      2023-07-05
    • 前端实现docx、pdf格式文件在线预览
      介绍在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,本文主要是通过第三方库来实现文档预览功能,并将其封装成preview组件docxdocx的实现需要使用docx-preview插件安装npm i do...
      99+
      2022-11-22
      docx pdf 预览
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作