当前位置: 首页 > news >正文

前端使用 preview 插件预览docx文件

目录

    • 前言
      • 一 引入插件
      • 二 JS 处理

前言

        前端使用 preview 插件预览docx文件

一 引入插件

建议下载至本地,静态引入,核心的文件已打包(前端使用 preview 插件预览docx文件),在文章目录处下载至本地,复制在项目静态资源处,在使用的地方直接本地静态资源引入;

<script src="https://unpkg.com/jszip/dist/jszip.min.js"></script>
<script src="https://unpkg.com/docx-preview/dist/docx-preview.min.js"></script>
<!-- 建议下载至本地,静态引入 -->
<script  src='/js/PreViewDoc/jszip.min.js'></script>
<script  src='/js/PreViewDoc/docx-preview.min.js'></script>

二 JS 处理

var api = {init: function () {var that = this;laydate.render({elem: $('[name=StatisDate]').get(0), type: 'month', value: getLastMonth(), done: function (value, date, endDate) {if (date.year < new Date().getFullYear()) {console.log(new Date().getFullYear());RendergetZone(date.year);} else {GetCurrZone();}}});$('#ReportNam').text(reportNam);form.render();that.event();},event: function () {var that = this;form.on('submit(report_query)', function (input) {// 禁用 "生成" 按钮const generateButton = $('[lay-submit]'); // 通过lay-submit获取按钮generateButton.addClass('layui-btn-disabled').attr('disabled', true); // 禁用按钮generateButton.html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop">' +'</i> 生成中'); // 修改按钮内容为 loading 动画const container = document.getElementById('doc-content'); // 渲染文档的容器//清空提示信息container.innerHTML = '';$.ajax({url: interface2021.ReportManagement.QueryWorkSimpleReport,method: 'POST',headers: {'Content-Type': 'application/json',},data: JSON.stringify({statisDate: input.field.StatisDate,zoneCode: input.field.ZoneCd,issuingUnit: input.field.IssuingUnit,stageNumber: input.field.StageNumber,}),// xhrFields: {//     responseType: 'blob', // 接收文件流// },success: function (response) {if (response.code === -1) {container.innerHTML = "<p style='color: red;'>文档请求失败</p>";relieveDisable(false,generateButton, '生成', response.message);} else {var fileProxyUrl = response.data;fetch(fileProxyUrl).then((response) => response.blob()).then((blob) => {docx.renderAsync(blob, container).then(() => {console.log('文档渲染成功');//恢复按钮relieveDisable(true,generateButton, '生成', response.message);// 获取下载按钮并设置属性const downloadButton = document.getElementById('download-btn');downloadButton.style.display = 'inline-block'; // 显示下载按钮downloadFile(downloadButton, response.data);}).catch((err) => {console.log('文档渲染失败', err);container.innerHTML = "<p style='color: red;'>文档请求失败</p>";relieveDisable(false,generateButton, '生成', err.message);});}).catch((error) => {console.log('文件加载失败:', error);relieveDisable(false,generateButton, '生成', error.message);});}},error: function (xhr, type, errorThrown) {console.log('文档请求失败: ', errorThrown);$('#doc-content').html('<p style="color: red;">文档请求失败</p>');relieveDisable(false,generateButton, '生成', '生成失败!');},});});},
}function downloadFile(downloadButton, downloadUrl) {// 启用 "下载" 按钮downloadButton.onclick = function () {console.log("开始下载...");const link = document.createElement('a');link.href = downloadUrl;document.body.appendChild(link);link.click();document.body.removeChild(link);console.log("下载完成");};
}
http://www.xdnf.cn/news/879949.html

相关文章:

  • 获取KIMI API以及API key
  • 板凳-------Mysql cookbook学习 (十)
  • 20250605使用boot-repair来恢复WIN10和ubuntu22.04.6双系统的启动
  • ASP.NET Core使用Quartz部署到IIS资源自动被回收解决方案
  • 20250605在荣品的PRO-RK3566开发板的Android13下让PMIC芯片RK809在长按下开机
  • pikachu靶场通关笔记16 CSRF关卡02-CSRF(POST)
  • Spring Boot 使用 SLF4J 实现控制台输出与分类日志文件管理
  • Linux系统编程-DAY10(TCP操作)
  • elementUI点击浏览table所选行数据查看文档
  • linux 故障处置通用流程-36计-14-27
  • JVM 核心概念深度解析
  • CB/T 3361-2019 甲板敷料检测
  • 中小企业IT运维痛点与OMS主动运维体系解析
  • 装一台水冷主机
  • uniappx插件nutpi-idcard 开发与使用指南(适配鸿蒙)
  • Linux C学习路线全概及知识点笔记2(仅供个人参考)
  • uniapp实现的简约美观的星级评分组件
  • uniapp图片文档预览
  • PHP 8.5 即将发布:管道操作符、强力调试
  • springboot mysql/mariadb迁移成oceanbase
  • 基于Java(SpringBoot、Mybatis、SpringMvc)+MySQL实现(Web)小二结账系统
  • 【图片识别改名】如何批量将图片按图片上文字重命名?自动批量识别图片文字并命名,基于图片文字内容改名,WPF和京东ocr识别的解决方案
  • 【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理
  • 阿里云事件总线 EventBridge 正式商业化,构建智能化时代的企业级云上事件枢纽
  • 【Spark征服之路-2.2-安装部署Spark(二)】
  • 力扣LeetBook数组和字符串--二维数组
  • 【无标题】路径着色问题的革命性重构:拓扑色动力学模型下的超越与升华
  • 网络测试实战:金融数据传输的生死时速
  • C++学习-入门到精通【14】标准库算法
  • C++11实现TCP网络通讯服务端处理逻辑简化版