2015-02-11 81 views
1

我使用「gm」模塊爲nodejs轉換不同的圖像和pdf文件。圖像類型成功,但是當我想將PDF轉換爲圖像時出現問題。我需要將pdf文件中只有一個選定的頁面轉換爲jpg/png。如果我將整個pdf文件傳遞給「gm」,它只會將圖像保存到第一頁,但我無法找到保存其他頁面的方式。如何將所選的pdf頁面轉換爲gm

gm(file).toBuffer(format.toUpperCase(), 
     function (err, buffer) { 
    // so in buffer now we have converted image 
} 

謝謝。

+0

您需要拆分PDF頁面並將每個頁面傳遞給GM​​。 – 2015-02-11 12:04:32

+0

@BenFortune你能爲此推薦一些工作模塊嗎? spindrift產生錯誤 – Serghei 2015-02-11 13:17:17

+0

你有沒有得到解決方案 – 2016-05-02 09:55:14

回答

-1

spindrift用於處理pdf(包括圖像轉換)。

可以使用定義PDF(您不必使用所有的命令):

var pdf = spindrift('in.pdf') 
    .pages(7, 24) 
    .page(1) 
    .even() 
    .odd() 
    .rotate(90) 
    .compress() 
    .uncompress() 
    .crop(100, 100, 300, 200) // left, bottom, right, top 

後來轉換爲圖像:

// Use the 'index' property of an image element to extract an image: 
pdf.extractImageStream(0) 

如果你必須使用通用,你可以做一些@Ben Fortune在他的評論中提出的建議,並首先將pdf分開。

+0

我試過這個庫,但是如何從緩衝區創建這個「spindrift」? – Serghei 2015-02-11 12:53:30

+0

在使用toBuffer之前,您是否嘗試過使用帶有spindrift的「文件」變量? – 2015-02-11 12:58:17

+0

嗯,我只是想無緩衝(剛開業,並試圖保存新文件),並得到了錯誤 '重生:PDFTK /var/www//temp/tt.pdf輸出-' 'events.js:72' '扔呃; //未處理的'錯誤'事件' '^' 'Error:spawn ENOENT' 'at errnoException(child_process.js:1011:11)' 'at Process.ChildProcess._handle.onexit(child_process.js:802 :34)' – Serghei 2015-02-11 13:11:56

相關問題