如何使用“ docxtemplater”生成的多个docx文件创建一个zip文件?

幻影0623

最近,有人要求我制作一个工具,一旦我们向它提供数据,它就可以使用给定的模板自动生成.docx文件。经过一番思考,我最终选择了docxtemplater,并且确实设法生成了一个.docx文件,其核心代码如下:

var zip = new PizZip(content); //Using PizZip.js
var doc = new window.docxtemplater(zip);    
var out = doc.getZip().generate({
    type: "blob",
    mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
});
saveAs(out, "output.docx"); //Using FileSaver.js

但是,这还不够,我想创建多个.docx文件并将它们放入一个包含zipfile的文件中。那么,如何修改上面的代码,以便生成一个包含上面的“ output.docx”文件和另一个docx文件的.zip文件?

edi9999

您可以创建多个docx并将它们添加到zip文件中:

在这里,我的示例适用于两个doc1和doc2,但对于任何数量的文档,它都可以相同的方式工作。

const doc1 = new Docxtemplater(new JSZip(content1));
const doc2 = new Docxtemplater(new JSZip(content2));
const outputZip = new PizZip();

doc1.setData({a:1}).render();
const buffer1 = doc1.getZip().generate({
    type: "arraybuffer",
    compression: "DEFLATE",
    mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
});
outputZip.file("output1.docx", buffer1);

doc2.setData({b:2}).render();
const buffer2 = doc2.getZip().generate({
    type: "arraybuffer",
    compression: "DEFLATE",
    mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
});
outputZip.file("output2.docx", buffer2);

const outputBlob = outputZip.generate({
    type: "blob",
    compression: "DEFLATE",
    mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建多个csv文件并使用rails在一个zip归档文件中全部下载

使用7zip提取多个文件并为每个文件创建一个文件夹

如何创建Android的一个ZIP的InputStream无需先创建一个ZIP文件?

如何创建一个多zip文件,读回?

如何用Java创建一个zip文件

如何创建一个空的zip文件?

如何创建一个zip文件v2.0?

Node.js:如何使用现有文件创建一个zip文件

使用Tempfile在Rails中创建一个zip文件

使用Rake :: PackageTask创建一个zip文件

如何从一个文件中创建多个列表?

CMake:如何从多个源文件创建一个对象?

如何基于一个Freemarker模板创建多个文件

如何创建一个文件的多个软链接?

如何创建使用Java一个非常具体的zip文件结构

如何从两个.doc文件创建一个.zip文件?

如何下载一个zip文件

如何模拟一个zip文件

使用终端将多个文件夹压缩为一个zip文件

有没有一种方法可以使用API从Google驱动器上的多个文件创建一个zip文件?

如何从一个文件创建多个文件,为每个文件提取特定的信息?

如何从文件字节开始在内存中创建一个zip文件?

创建一个可以由PKZIP 2.50使用7-zip打开的.zip文件

创建一个zip文件,并使用maven将其添加到war文件中

如何为一个巨大的文件夹创建多个tar归档文件

如何使用Ansible创建一个空文件?

如何使用jenkins创建一个testng xml文件

使用mpdf生成多个pdf文件但只生成一个

如何创建一个包含zoneinfo.zip的二进制文件