2016-05-21 10 views
0

ノードgmモジュールを使用してPDFの最初のページからサムネイルを作成しています。ノードのGraphicsmagickが、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"); 
    } 
}); 

スクリプトには2つの問題があります。

  1. ファイルcover.jpgを作成しますが、そのファイルは空(サイズ0)であり、どのビューアでも開くことができません。
  2. これは、PDFの最初のページのイメージであるという名前のファイルを作成します(これは私が望むものですが、間違った名前です)。

脇にそれを生成した後[object Object]ファイルの名前を変更するためにいくつかの追加ファイルシステムの操作を行ってから、私はcover.jpgファイルに直接画像を書き込むために、このスクリプトでgmfsを使用していた方法で変更することができるものがあります?

This questionは私に尋ねているものに似ていますが、受け入れられた動作上の回答はなく、別のライブラリをインストールする必要があります(望ましくありません)。

答えて

1

writeは、書き込みストリームではなく最初の引数としてファイルパスを受け取るため、ストリームオブジェクトを文字列表現に変換しているため、という名前のファイルが保存されます。

.write("cover.jpg")を使用することができます。また、書き込みストリームを使用する場合は、.steam().pipe(writeStream)を使用できます。

stream examplesgmをご覧ください。

関連する問題