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

vue 在线预览word

1 mammoth
先找的是mammoth这个插件yarn add mammoth,版本是1,7.0
参考网上的示例使用如下:

import mammoth from "mammoth";
const vHtml = ref("")
const readExcelFromRemoteFile = (url) =>{var xhr = new XMLHttpRequest();xhr.open("get", url, true);xhr.responseType = "arraybuffer";xhr.onload = function () {if (xhr.status == 200) {mammoth.convertToHtml({ arrayBuffer: new Uint8Array(xhr.response) }).then(function (resultObject) {nextTick(() => {// document.querySelector("#wordView").innerHTML =//   resultObject.value;vHtml.value = resultObject.value;});});}};xhr.send();
}

在word中设置的样式是
1
因为这个图片是做了文字环绕,因此他识别不了.
1

在网页端显示的如下面:
1
2 docx-preview
docx-preview使用就不是很顺利

index:1 Uncaught (in promise) SyntaxError: The requested module '/psi/node_modules/.vite/deps/docx-preview.js?v=d111f2a1' does not provide an export named 'default'
jszip.min.js:13 Uncaught (in promise) Error: Can't read the data of 'the loaded zip file'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?at jszip.min.js:13at async Function.load (open-xml-package.ts:26)at async Function.load (word-document.ts:52)at async renderAsync (docx-preview.ts:56)

使用这个组件,要装两个依赖包

yarn add docx-preview

参考了vue3+typescript 预览docx文件,这是我的版本用的0.3.0,并不支持doc格式
1
但是docx则可以显示,文件上传的同时,直接就可以渲染出来。这个我喜欢。
参考代码如下

<template><el-container><el-aside width="250px"><el-header height="45px"><div class="nav"><el-button type="primary">保存</el-button></div></el-header><el-main><el-form :model="dataForm"  label-suffix=":" label-position="top" style="margin-top: 10px;"><el-form-item label="合同名称" prop="name"><el-input v-model="dataForm.name" placeholder="请输入合同名称" clearable></el-input></el-form-item><el-form-item label="合同模板" prop="tpl"><sc-upload-file v-model="dataForm.tpl" :limit="1" drag :on-change="handleChange" :auto-upload="false"><el-icon class="el-icon--upload"><el-icon-upload-filled /></el-icon><div class="el-upload__text">拖拽到这 或<em>点击上传</em></div></sc-upload-file></el-form-item><el-form-item label="电子签章" prop="dzqz"><sc-upload v-model="dataForm.dzqz" title="电子签章"></sc-upload></el-form-item></el-form></el-main></el-aside><el-main ><div ref="container" class="docx"></div></el-main><el-aside width="250px"><div class="header">可用的合同参数</div><el-table :data="params" style="width: 100%;" border size="small" stripe highlightCurrentRow><el-table-column prop="name" label="参数名称" align="left" ></el-table-column><el-table-column prop="param" label="参数" align="left" ></el-table-column></el-table></el-aside></el-container>
</template>
let container = ref();
const handleChange: UploadProps['onChange'] = (file: any) => {fileViews.value = filerenderAsync(fileViews.value.raw, container.value, undefined, {className: "docx", // 默认和文档样式类的类名/前缀inWrapper: true, // 启用围绕文档内容渲染包装器ignoreWidth: false, // 禁止页面渲染宽度ignoreHeight: false, // 禁止页面渲染高度ignoreFonts: false, // 禁止字体渲染breakPages: true, // 在分页符上启用分页ignoreLastRenderedPageBreak: true, //禁用lastRenderedPageBreak元素的分页experimental: false, //启用实验性功能(制表符停止计算)trimXmlDeclaration: true, //如果为真,xml声明将在解析之前从xml文档中删除debug: false, // 启用额外的日志记录})
}

这个效果就比较好
1

相关文章:

  • java继承,接口,抽象类
  • centos 系统 yum 无法安装(换国内镜像地下)
  • 设计模式学习笔记 - 规范与重构 - 5.如何通过封装、抽象、模块化、中间层解耦代码?
  • HTTP有什么缺陷,HTTPS是怎么解决的
  • 探索ChatGPT在软件架构师工作中的应用
  • Spring-Cloud-Gateway Filter详细配置说明
  • 角蜥优化算法 (Horned Lizard Optimization Algorithm ,HLOA)求解无人机路径优化
  • 【NR 定位】3GPP NR Positioning 5G定位标准解读(九)-增强的小区ID定位
  • 【数据结构:树与堆】向上/下调整算法和复杂度的分析、堆排序以及topk问题
  • 泛微ecology9开发
  • Java学习笔记------拼图游戏
  • 【漏洞分析】CVE-2024-27198可RCE身份验证绕过JetBrains TeamCity
  • 什么是高级编程语言?——跟老吕学Python编程
  • 单例模式及线程安全的实践
  • 20个常用的Python脚本
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Android系统模拟器绘制实现概述
  • hadoop集群管理系统搭建规划说明
  • input的行数自动增减
  • JS基础之数据类型、对象、原型、原型链、继承
  • k8s 面向应用开发者的基础命令
  • markdown编辑器简评
  • python docx文档转html页面
  • React16时代,该用什么姿势写 React ?
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 高程读书笔记 第六章 面向对象程序设计
  • 给Prometheus造假数据的方法
  • 缓存与缓冲
  • 基于HAProxy的高性能缓存服务器nuster
  • 记录一下第一次使用npm
  • 前端路由实现-history
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何使用 JavaScript 解析 URL
  • 设计模式 开闭原则
  • 深入浅出Node.js
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 移动端 h5开发相关内容总结(三)
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​如何防止网络攻击?
  • ​用户画像从0到100的构建思路
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #define
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (CPU/GPU)粒子继承贴图颜色发射
  • (poj1.2.1)1970(筛选法模拟)
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (补)B+树一些思想
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (一)UDP基本编程步骤
  • (转)memcache、redis缓存
  • (转)我也是一只IT小小鸟