【vue富文本编辑器+转换成word下载】

<template>
  <div>
    <div style="border: 1px solid #ccc;">
      <Toolbar
          style="border-bottom: 1px solid #ccc"
          :editor="editor"
          :defaultConfig="toolbarConfig"
          :mode="mode"
      />
      <Editor
          style="height: 500px; overflow-y: hidden;"
          v-model="html"
          :defaultConfig="editorConfig"
          :mode="mode"
          @onCreated="onCreated"
      />
    </div>
    <button @click="handleCosole,download()">输出内容</button>
  </div>
</template>
<script>
    import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
    import htmlDocx from 'html-docx-js/dist/html-docx';
    import saveAs from 'file-saver';
    export default{
        name:'order',
        components: { Editor, Toolbar },
        data() {
            return {
                editor: null,
                html: '<p>hello</p>',
                toolbarConfig: { },
                editorConfig: { placeholder: '请输入内容...' },
                mode: 'default', // or 'simple'
            }
        },
        methods: {
            onCreated(editor) {
                this.editor = Object.seal(editor) // 一定要用 Object.seal() ,否则会报错
            },
            handleCosole() {
              console.log(this.editor.getHtml());
            },
            download(){
              console.log(this.editor.getHtml());
              let rec = this.editor.getHtml();
              let htmlStr = rec;
              let page = `<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>${htmlStr}        
                  </body></html>`
              // console.log(page);return
              saveAs(
                  htmlDocx.asBlob(page, {
                      orientation: "landscape"//跨域设置
                  }),
                  //文件名
                  rec.name+".doc"
              )
            }
        },
        mounted() {
            // 模拟 ajax 请求,异步渲染编辑器
            setTimeout(() => {
                this.html = '<p>模拟 Ajax 异步设置内容 HTML</p>'
            }, 1500)
        },
        beforeDestroy() {
            const editor = this.editor
            if (editor == null) return
            editor.destroy() // 组件销毁时,及时销毁编辑器
        }
    }
</script>
<style src="@wangeditor/editor/dist/css/style.css"></style>

https://www.wangeditor.com/ 开源 Web 富文本编辑器,开箱即用,配置简单,蛮好用的。

npm install @wangeditor/editor file-saver html-docx-js --save

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值