vue3 使用docxtemplater 动态生成docx

模版文件docx放到vue工程public下

文件内容

vue文件

html 复制代码
<template>
  <div>
    <button @click="generateDocument">生成Word文档</button>
  </div>
</template>

<script>
import PizZip from 'pizzip';
import Docxtemplater from 'docxtemplater';
import { saveAs } from 'file-saver';
import PizZipUtils from 'pizzip/utils/index.js';

function loadFile(url, callback) {
  PizZipUtils.getBinaryContent(url, callback);
}

export default {
  methods: {
    generateDocument() {
      // 假设你的模板文件位于 public 文件夹下
      const templatePath = '/docx/tepmlate/testtemplate2.docx'; // 替换为你的模板路径
      
      loadFile(templatePath, (error, content) => {
        if (error) throw error;

        const zip = new PizZip(content);
        const doc = new Docxtemplater(zip, {
          paragraphLoop: true,
          linebreaks: true,
        });

        // 渲染文档,替换占位符
        doc.render({
          first_name: 'John'
        });

        // 生成Blob文件
        const blob = doc.getZip().generate({ type: 'blob' });
        // 下载文件
        saveAs(blob, 'output.docx');
      });
    }
  }
}
</script>

相关推荐
李@十一₂⁰36 分钟前
HTML 特殊字体符号
前端·html
y***86691 小时前
TypeScript在Electron应用中的使用
javascript·typescript·electron
小奶包他干奶奶3 小时前
Webpack学习——Loader(文件转换器)
前端·学习·webpack
zy happy3 小时前
若依 vue3 报错:找不到模块“@/api/xxxx/xxxxx”或其相应的类型声明。。Vue 3 can not find mod
前端·javascript·vue.js
潘小安3 小时前
Git Worktree + Claude Code:让你的开发效率翻倍的秘密武器
前端
meichaoWen4 小时前
【Vue3】vue3的全面学习(一)
前端·javascript·学习
小猪努力学前端4 小时前
在 React + React Router v7 SSR 项目里做多端适配,我踩的两个坑
前端·react.js
q***d1734 小时前
React桌面应用开发
前端·react.js·前端框架
8***29314 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
0***144 小时前
React计算机视觉应用
前端·react.js·计算机视觉