2014-09-23 5 views
5

erstellen Ich benutze Meteor (der auf Knoten gebaut wird) und CollectionCFS (die mir erlaubt, gm [GraphicsMagick] für Daumen-Nageln zu verwenden).Wie kann ich Thumbnails von pdfs mit node.js und gm

I Folgendes tun es automatisch zu haben, eine Miniaturansicht von hochgeladenen Bilder zu erstellen:

new FS.Store.FileSystem("thumbs", { 
     transformWrite: function(fileObj, readStream, writeStream) { 
     gm(readStream, fileObj.name()).resize('100', '100').stream().pipe(writeStream); 
     }, 
     path: "/Volumes/Public/Thumbs", 
    }) 

transformWrite Die Funktion empfängt der Readstream (das Originalbild), ändert sie und leitet die Ergebnisse an den Writestream. Wie kann ich Miniaturen von PDFs erstellen lassen?

+0

Haben Sie diesen Code mit einer PDF-Datei versucht? Soweit ich das beurteilen kann, sollte es funktionieren. Vielleicht fügen Sie "png" als Argument zu stream() hinzu – gpothier

Antwort

1

Wenn Sie nur die erste Seite des PDFs als Miniaturansicht wünschen. tun Sie folgendes:

new FS.Store.FileSystem("thumbs", { 
    transformWrite: function(fileObj, readStream, writeStream) { 
    gm(readStream, fileObj.name() + '[0]').resize('100', '100').stream('png').pipe(writeStream); 
    }, 
    beforeWrite: function (fileObj) { 
    return { 
     extension: 'png', 
     type: 'image/png' 
    }; 
    }, 
    path: "/Volumes/Public/Thumbs", 
}) 
+0

Vielen Dank für die Arbeit an dieser Frage. Ich war sehr aufgeregt, das auszuprobieren! Diese Lösung erstellt das Thumbnail perfekt, aber aus irgendeinem Grund scheinen die URLs nie zu funktionieren. Sind Sie sich über den fileObj.name() + '[0]' Teil sicher? –

+0

Ich habe versucht, fileObj.name, und Slugify (fileObj.name) und ich habe auch gerade versucht, diese Logik auf den beforeWrite wie folgt verschieben: name: slugify (fileObj.name), aber nichts davon scheint zu funktionieren. Die Datei ist da, aber die erzeugte URL scheint nicht zu passen –

+0

Ich schein falsch zu sein. Die Bilder sehen in der Dropbox gut aus (ich benutze cfs: dropbox), aber wenn ich sie herunterlade, sind sie beschädigt. Ich habe festgestellt, dass das Thumbnail korrekt erstellt und angezeigt wird, wenn ich ein Bild hochlade. Das PDF-Thumbnail scheint also nicht ganz zu stimmen. –

Verwandte Themen