Docx-merger | 在 NodeJS 和浏览器环境中合并 Docx 文件(即world文件)

本文介绍了如何使用Docx-merger库在Node.js和浏览器环境中合并两个Docx文件。通过项目初始化,安装依赖,读取并合并文件,最后保存合并后的文件。示例中提供了JS代码和HTML代码两种实现方式,利用Promise或回调函数处理异步操作。
摘要由CSDN通过智能技术生成

本文主要介绍Docx-merger用法,将两个word文件合并成一个word文件。

一、搭建项目运行环境

1. 项目初始化

npm init -y

2.安装docx-merger插件依赖

npm install docx-merger

3.在当前目录下存放好需要合并的word文件

二、代码

1.JS代码 

Docx-merger的核心代码 

var DocxMerger = require('./docx-merger');

var fs = require('fs');
var path = require('path');

var file1 = fs.readFileSync(path.resolve(__dirname, 'template.docx'), 'binary');

var file2 = fs.readFileSync(path.resolve(__dirname, 'template1.docx'), 'binary');

var docx = new DocxMerger({}, [file1, file2]);

docx.save('nodebuffer', function (data) {
    fs.writeFile("output.docx", data, function (err) {/*...*/ });
});

2.HTML代码

2.1 callback.html

<html>
<script src="./node_modules/docx-merger/dist/docx-merger.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSaver.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip-utils/0.0.2/jszip-utils.min.js"></script>

<script>
    function loadFile(url, callback) {

        return new Promise(function (resolve, reject) {

            JSZipUtils.getBinaryContent(url, function (err, data) {
                if (err) reject(err);
                resolve(data);
            });
        });
    }
    Promise.all([loadFile("template.docx"), loadFile("template1.docx")]).then(function (files) {

        var docx = new DocxMerger({}, files);

        docx.save('blob', function (data) {
            saveAs(data, "output.docx");
        });
    }, function (err) {
        alert(err);
    })
</script>

</html>

2.2  promise.html

<html>
<script src="./node_modules/docx-merger/dist/docx-merger.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSaver.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip-utils/0.0.2/jszip-utils.min.js"></script>

<script>
    function loadFile(url, callback) {
        JSZipUtils.getBinaryContent(url, callback);
    }
    loadFile("template.docx", function (error, file1) {
        loadFile("template1.docx", function (error, file2) {

            var docx = new DocxMerger({}, [file1, file2]);

            docx.save('blob', function (data) {
                saveAs(data, "output.docx");
            });
        })
    })
</script>

</html>

总结

通过以上步骤即可在 Node.JS 和浏览器环境中合并 Docx 文件

官网参考文档  docx-merger - npm (npmjs.com)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值