node.js实现文件合并

需求:

实现两个文件的合并。

代码:

const fs = require("fs");
function combine(file1,file2) {
    var size = 0;
    fs.stat(file1,function (err,stat) {
        if(stat.isFile()){
            size = stat.size;
            console.log(size);
            let WSoptions = {
                start: size,
                flags: "r+"
            }
            let WStream = fs.createWriteStream(file1,WSoptions)
            let readStream = fs.createReadStream(file2);
            readStream.pipe(WStream)
        }
    })
}
const file1 = "result.pdf";
const file2 = "wendangceshi.pdf";

上述代码实现的功能为,将file1和file2两个文件合并到file1文件中。
问题:
目前发现的问题为,对于两个pdf文件,合并后的文件仅有file2文件的内容,但合并后文件的大小为两个文件大小之和。而对于文本文件(指txt文件),却能正常合并内容,求码友不吝赐教,说明一下原因。
合并前的文本:
clipboard.png
合并后的文本:
clipboard.png

合并前的pdf:

clipboard.png

clipboard.png

合并后的pdf图:

clipboard.png

clipboard.png

combine(file1,file2);



  [1]: /img/bVbbqr9
阅读 6.2k
1 个回答

pdf是一个很复杂的文件格式,不是把两个流合并一起内容就合在一起了。你也不能把两张图片的流合在一起变成一张合成图不是么。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题