2026/1/9 2:43:00
网站建设
项目流程
三丰云做游戏网站,大连坐做网站公司,广州哪里有做网站的,扬州企业网站建设作者#xff1a;竹业
https://juejin.cn/post/7071598747519549454
前言
因为业务需要#xff0c;很多文件需要在前端实现预览#xff0c;今天就来了解一下吧。
Demo地址[1]#xff1a;https://zhuye1993.github.io/file-view/dist/index.html
实现方案
找了网上的实…作者竹业https://juejin.cn/post/7071598747519549454前言因为业务需要很多文件需要在前端实现预览今天就来了解一下吧。Demo地址[1]https://zhuye1993.github.io/file-view/dist/index.html实现方案找了网上的实现方案效果看起来不错放在下面的表格里里面有一些是可以直接通过npm在vue中引入使用。文档格式老的开源组件替代开源组件worddocxmammothdocx-preview(npm)powerpointpptxpptxjspptxjs改造开发excelxlsxsheetjs、handsontableexceljs(npm)、handsontable(npm)(npm)pdfpdfpdfjspdfjs(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, // 启用额外的日志记录 } ); 复制代码实现效果image.pngpdf实现前端预览代码实现首先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); }) }) 复制代码实现效果image.pngexcel实现前端预览代码实现下载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 :settingshotSettings/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 } 复制代码实现效果image.pngpptx的前端预览主要是通过jszip库加载二进制文件再经过一些列处理处理转换实现预览效果实现起来比较麻烦就不贴代码了感兴趣的可以下载代码查看。实现效果image.png总结主要介绍了word、excel、pdf文件实现预览的方式前端实现预览最好的效果还是PDF不会出现一些文字错乱和乱码的问题所以一般好的方案就是后端配合将不同格式的文件转换成pdf再由前端实现预览效果将会保留文件的一些样式的效果对于图片、txt文件的实现感兴趣的可以看下代码。代码地址github.com/zhuye1993/f…[2]https://github.com/zhuye1993/file-view2025开年AI技术打得火热正在改变前端人的职业命运阿里云核心业务全部接入Agent体系字节跳动30%前端岗位要求大模型开发能力腾讯、京东、百度开放招聘技术岗80%与AI相关……大模型正在重构技术开发范式传统CRUD开发模式正在被AI原生应用取代最残忍的是业务面临转型领导要求用RAG优化知识库检索你不会带AI团队微调大模型要准备多少数据你不懂想转型大模型应用开发工程师等相关岗没项目实操经验……这不是技术焦虑而是职业生存危机曾经React、Vue等热门的开发框架已不再是就业的金钥匙。如果认为会调用API就是懂大模型、能进行二次开发那就大错特错了。制造、医疗、金融等各行业都在加速AI应用落地未来企业更看重能用AI大模型技术重构业务流的技术人。如今技术圈降薪裁员频频爆发传统岗位大批缩水相反AI相关技术岗疯狂扩招薪资逆势上涨150%大厂老板们甚至开出70-100W年薪挖掘AI大模型人才不出1年 “有AI项目开发经验”或将成为前端人投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘大模型目前在人工智能领域可以说正处于一种“炙手可热”的状态吸引了很多人的关注和兴趣也有很多新人小白想要学习入门大模型那么如何入门大模型呢下面给大家分享一份2025最新版的大模型学习路线帮助新人小白更系统、更快速的学习大模型2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享