首页 > 其他分享 >vue项目获取富文本编辑器wangEditor内容导出为word(html转word格式并下载)

vue项目获取富文本编辑器wangEditor内容导出为word(html转word格式并下载)

时间:2024-05-31 17:01:27浏览次数:23  
标签:文本编辑 vue word wangEditor 导出 content html css

一、开发问题

  html-doc-js,只能处理简单的富文本导出为word,对于编辑器中部分图文和样式会不生效,而wangEditor默认设置有下图这么多,所以要自己尝试找替代方案去解决html内容。

  例如:列表、表情emoji、高度、css样式、图片、视频、表格、代码块等。

  问题1:css样式不生效,解决方法:

    尽量不用内联样式,在导出word时把css样式放在head头部<style></style>中。

    css link 链接,先获取css资源,转换成文本,然后合并在html style中。(待验证)

  问题2: 遇到加粗、下划线、背景颜色等不生效,解决方法:

    最粗暴的改法:换标签写法~

    加粗:    content.replace(/<strong>/g, '<b>').replace(/<\/strong>/g, '</b>') 

    背景颜色/下划线:  content.replace(/<mark/g, '<span').replace(/<\/mark>/g, '</span>') 

  剩余问题: 要一一验证~

  重点:git仓库已经不更新,没有人维护!有问题自己解决或找替代方案!

 

二、页面获取wangeditor内容代码

// template
<Wangeditor ref="wangEditor" :editorStyle="{ height: '100%' }" @blur="handleBlur" @change="handleChange" />
 <a-button class="box-download" type="link" size="small" @click="fileDownload()">导出</a-button>

// script
import htmlDocx from 'html-docx-js/dist/html-docx' import FileSaver from 'file-saver'

handleBlur(content){
  this.$refs.wangEditor.handleSetHtml(content);
   this.$refs.wangEditor.clear(); // 根据实际情况清空编辑器内容
},
handleChange(content){ // 存储编辑器内容
  this.content = content;
},
fileDownload(){
  // 点击导出word文件
  this.$message.warning('导出中...') // 提示语
   let content=`<!DOCTYPE html><html>               <head>                   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">               </head>               <body>                   <div>                       ${this.content}                   </div>               </body>             </html>`    let converted = htmlDocx.asBlob(content); // 针对普通文本导出      FileSaver.saveAs(converted, `富文本编辑器内容.docx`);      this.$message.success('导出成功')
},

标签:文本编辑,vue,word,wangEditor,导出,content,html,css
From: https://www.cnblogs.com/anniey/p/18224778

相关文章

  • Vue3-路由详解
    文章目录路由对路由的理解安装VueRouter基本切换效果两个注意点路由器工作模式to的两种写法命名路由嵌套路由路由传参query参数params参数路由的props配置replace属性编程式导航重定向更多相关内容可查看路由附git地址:https://gitee.com/its-a-little-bad/vue......
  • Vue生命周期
    1.beforeCreate初始化界面前:在当前阶段data、methods、computed以及watch上的数据和方法都不能被访问。2.created初始化界面后:在实例创建完成后发生,当前阶段已经完成了数据观测,也就是可以使用数据,更改数据,在这里更改数据不会触发updated函数,也就是不会更新视图,SSR可以......
  • vue项目部署后刷新页面404的原因和解决方案
    在部署Vue.js单页面应用(SPA)时,遇到刷新页面时返回404错误是一个常见问题。这个问题通常是由于服务器不知道如何处理SPA的路由而导致的。原因在Vue.jsSPA中,前端路由由VueRouter处理。当你在应用中导航时,VueRouter可以处理这些路由并加载相应的组件。但是,当你直接刷......
  • 从0到1写一个vue2官网项目(一)
    1、安装npm9.5.1和node18.16.0(略)2、sudonpminstall-g@vue/cli 选vue23、pnpmi然后pnpmrunserve4、跑vue项目如果报错: ERROR Failedtocompilewith2errors                                           17:33......
  • mysql 导出库里所有表结构到word文件的表格
    方案一:SELECTc.table_name表名,t.TABLE_COMMENT表备注,c.COLUMN_NAME参数名称,c.COLUMN_COMMENT参数含义,c.COLUMN_TYPE类型,casec.IS_NULLABLEwhen'NO'then'不允许'else'允许'endas允许为空,c.COLUMN_COMMENT备注FROMINFORMATION_SCHEMA.COLUMNScLEFT......
  • Vue 3 + TypeScript:构建强大前端应用的完美组合
    在前端开发的领域中,Vue3和TypeScript的结合正成为一种强大且流行的技术栈。今天,让我们深入探讨Vue3+TypeScript所带来的诸多优势和实践经验。一、Vue3的卓越特性Vue3引入了众多令人瞩目的新特性,如更好的性能、更灵活的组合式API等。这些特性使得我们能够以......
  • Vue devDependencies 与 dependencies 能别
    VuedevDependencies与dependencies能别,如何往项目的node_modules安装组件概述devDependencies用于本地环境开发只会在开发环境下依赖的模块,生产环境不会被打入包内(通过NODE_ENV=developement或NODE_ENV=production指定开发还是生产环境)dependencies用户发布环境......
  • vue3毫秒级时间戳转换
    Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。以下2个方法源自于时间工具包:timeutils效果展示:在线时间戳转换工具时间转时间戳/***将某个时间转化成时间戳*时间格式:2019-05-2000:00:00或2019年5月1日00:00:00*返回值:1556640000000,13......
  • vue3 vite 脚手架生成项目 prettier 自动格式化失败 vscode插件 Vue - Official 解决
    vue3vite脚手架生成项目prettier自动格式化失败vscode插件Vue-Official解决方案问题以前写的都是vue2的项目,自动格式化都用的vetur,都设置好了。现在新弄了个vue3的项目,脚手架起的vitevue3,搞个代码格式化,发现prettier没好事。解决思路格式化一共俩工具eslintpret......
  • 如何将图片识别成文字版word文档?
    在现代社会中,图片和文字的结合已经成为了一种常见的表达方式。我们可以通过图片来传达各种信息,比如广告、宣传等等。但有时候我们需要把图片中的文字提取出来,进行编辑和处理,这时候就需要把图片中的文字转换成word文档。下面给大家介绍几种常见的方法,帮助你解决图片如何成为word文......