在转换PDF

时间:2016-05-21 14:56:28

标签: node.js pdf graphicsmagick

我正在使用节点gm模块从PDF的第一页创建缩略​​图。

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

var writeStream = fs.createWriteStream("cover.jpg");

// Create JPG from page 0 of the PDF
gm("file.pdf[0]").setFormat("jpg").write(writeStream, function(error){
    if (!error) {
        console.log("Finished saving JPG");
    }
});

脚本存在两个问题。

  1. 它会创建一个文件cover.jpg,但该文件为空(大小为0),并且无法由任何查看者打开。
  2. 它会创建一个名为[object Object]的文件,它是PDF首页的图像(这是我想要的,但名称错误。)
  3. 除了做一些额外的文件系统操作以在生成它之后重命名[object Object]文件之外,我可以在此脚本中使用gmfs的方式进行更改将图像直接写入cover.jpg文件?

    This question与我的要求类似,但没有可接受的工作答案,我需要安装另一个库才能使用它(不合需要)。

1 个答案:

答案 0 :(得分:1)

write接收文件路径作为第一个参数,而不是写入流,因此该方法将流对象转换为其字符串表示,这就是它保存名为[object Object]的文件的原因。

您可以使用.write("cover.jpg"),或者如果您想使用写入流,则可以使用.stream().pipe(writeStream)

查看gm的{​​{3}}。