2016-05-21 4 views
0

Ich bin mit dem Knoten gm Modul eine Miniaturansicht der ersten Seite eines PDF-Erstellung.Graphicsmagick für Knoten nicht auf die richtige Datei zu schreiben, als PDF-Umwandlung

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"); 
    } 
}); 

Es gibt zwei Probleme mit dem Skript.

  1. Es erstellt eine Datei cover.jpg, aber diese Datei ist leer (Größe 0) und kann von keinem Viewer geöffnet werden.
  2. Es erstellt eine Datei mit dem Namen [object Object], die ein Bild der ersten Seite der PDF ist (das ist was ich will, aber der falsche Name).

Abgesehen einige zusätzliche Dateisystem Manipulation zu tun, die [object Object] Datei nach dem Generieren es umbenennen, gibt es etwas, das ich in der Art und Weise ändern kann ich gm und fs in diesem Skript bin mit dem Bild direkt auf die cover.jpg Datei schreiben ?

This question ist ähnlich wie ich frage, aber es gibt keine akzeptierte funktionierende Antwort und ich muss noch eine Bibliothek installieren, um es zu verwenden (unerwünscht).

Antwort

1

write empfängt den Dateipfad als erstes Argument, nicht als Schreibdatenstrom, daher konvertiert die Methode das Datenstromobjekt in die Zeichenfolgendarstellung. Daher wird eine Datei mit dem Namen [object Object] gespeichert.

Sie können einfach .write("cover.jpg") verwenden, oder wenn Sie einen Schreibstream verwenden möchten, können Sie .steam().pipe(writeStream) verwenden.

Werfen Sie einen Blick auf die stream examples von gm.

Verwandte Themen