const converted = htmlDocx.asBlob(content, { orientation: "landscape" }); converted.children[0].descendants[0].root[1].root[0].pageSection.size = "59.4cm 84.1cm"; const fileName = '测试' + '.docx' FileSaver.saveAs(converted, fileName);
时间: 2024-03-22 12:37:07 浏览: 258
测试.docx
根据你提供的代码,你正在将一个 HTML 内容转换为 Word 文档,并将其保存为一个文件。在这个过程中,你尝试设置 Word 文档的大小为 "59.4cm 84.1cm",但是你的代码有一个错误。具体来说,`converted` 是一个 Blob 对象,它没有 `children` 属性,所以尝试访问 `converted.children[0]` 会导致一个 TypeError 错误。
要解决这个问题,你需要将 `converted` 转换为一个 JavaScript 对象,然后再设置其大小。你可以使用 `htmlDocx.asBuffer` 方法将 HTML 内容转换为一个 Buffer 对象,并将其传递给 `Docxtemplater` 构造函数来创建一个 Docxtemplater 对象,如下所示:
```
const buffer = htmlDocx.asBuffer(content, { orientation: "landscape" });
const doc = new Docxtemplater(buffer);
doc.setData(data); // 设置数据
doc.render(); // 渲染文档
doc.docx.children[0].descendants[0].root[1].root[0].pageSection.size = {
width: 16838, // 59.4cm 转换成 20th of a point
height: 11906 // 84.1cm 转换成 20th of a point
};
const converted = doc.getZip().generate({ type: "blob" });
const fileName = "测试.docx";
FileSaver.saveAs(converted, fileName);
```
这个代码中,我们首先将 HTML 内容转换为一个 Buffer 对象,并使用它创建一个 Docxtemplater 对象。然后我们设置文档的数据并渲染它。最后,我们设置文档的大小,并将其转换为一个 Blob 对象并保存为一个文件。
阅读全文