docxtemplater
通过 JavaScript 从模板生成 Word DOCX
用于创建、修改和转换 Microsoft® Word DOCX 文件的 JavaScript 库。
如何安装 docxtemplater?
安装 docxtemplater 的推荐和最简单的方法是通过 npm。请使用以下命令进行顺利安装。
通过 npm 安装 docxtemplater
npm install docxtemplater pizzip
通过 JavaScript 生成 Word DOCX
docxtemplater 库有助于在 Node.js 应用程序以及浏览器中轻松创建 DOCX 文档。它还允许修改现有的 DOCX 文档以插入表格、图像、文本、段落等。
更新DOCX字到JavaScript
const PizZip = require("pizzip");
const Docxtemplater = require("docxtemplater");
const fs = require("fs");
const path = require("path");
// Load the docx file as binary content
const content = fs.readFileSync(
path.resolve(__dirname, "input.docx"),
"binary"
);
const zip = new PizZip(content);
const doc = new Docxtemplater(zip, {
paragraphLoop: true,
linebreaks: true,
});
// Render the document (Replace {first_name} by John, {last_name} by Doe, ...)
doc.render({
first_name: "John",
last_name: "Doe",
phone: "0652455478",
});
const buf = doc.getZip().generate({
type: "nodebuffer",
compression: "DEFLATE",
});
// buf is a nodejs Buffer, you can either write it to a
// file or res.send it with express for example.
fs.writeFileSync(path.resolve(__dirname, "output.docx"), buf);
在 Word 文档中插入和管理表格
docxtemplater 库使软件开发人员只需几行 JavaScript 代码即可创建一个表格。该库包含多种在文档中创建和管理表格的方法,例如从头开始创建表格、创建垂直循环表格或通过复制单元格、合并表格的单元格、插入行和列、定义行和列的宽度等等。
将脚注添加到 Word 文档
免费的 docxtemplater 库支持向 DOCX Word 文档添加脚注。该库可以完全控制脚注的自定义。您可以在上标中添加数字,并轻松地将不同的样式应用于脚注的内容。
通过JavaScript加上脚注
const imageOpts = {
getProps: function (img, tagValue, tagName) {
/*
* If you don't want to change the props
* for a given tagValue, you should write :
*
* return null;
*/
return {
rotation: 90,
// flipVertical: true,
// flipHorizontal: true,
};
},
getImage: function (tagValue, tagName) {
return fs.readFileSync(tagValue);
},
getSize: function (img, tagValue, tagName) {
return [150, 150];
},
};
const doc = new Docxtemplater(zip, {
modules: [new ImageModule(imageOpts)],
});
在 DOCX 中添加和修改图像
开源 docxtemplater 库使软件程序员能够在 Word 文档中插入图像。该库允许设置图像宽度和高度、对齐图像、为图像添加标题、使用角度表达式设置图像大小等。您还可以从任何数据源检索图像数据,例如 base64 数据、文件系统、URL 和 Amazon S3 存储的图像。该库的一大特色是您可以避免图片大于其容器。
通过JavaScript条旋转和翻转图像
const imageOpts = {
getProps: function (img, tagValue, tagName) {
/*
* If you don't want to change the props
* for a given tagValue, you should write :
*
* return null;
*/
return {
rotation: 90,
// flipVertical: true,
// flipHorizontal: true,
};
},
getImage: function (tagValue, tagName) {
return fs.readFileSync(tagValue);
},
getSize: function (img, tagValue, tagName) {
return [150, 150];
},
};
const doc = new Docxtemplater(zip, {
modules: [new ImageModule(imageOpts)],
});