2013-04-25 98 views
1

我試圖爲我的Rails應用程序分割多頁PDF,然後將頁面轉換爲png。在最好的情況下,我最終會在我的圖像模型中每頁輸入一個條目。Carrierwave:將多頁PDF分割成多個圖像

這是我到目前爲止有:

def generate_png 
    manipulate! do |image, index| 
    image.format = 'png' 
    image.write("#{Rails.root}/public/#{store_dir}/image-#{index}.png") 
    end 
end 

不幸的是,只給我的圖像0.png第一幀,並沒有爲其他幀。我哪裏錯了?

如何在每個幀的圖像模型中生成一個新條目?類似於

model.images.new :image => image 

謝謝大家!

回答

1

當您將pdf文件拆分爲圖片時,如果文件名爲file.pdf,結果將爲多個圖片同名,附加的數字爲file-0.png,file-1.png .... ... 所以你需要加載PDF格式的所有轉換後的圖像,並將它們轉換爲任何你想要的格式

它給你image-0.png,因爲splitting pdf文件的返回只是第一個圖像,在PDF文件第一頁

可以正常上傳文件,然後執行after_create方法

def generate_image_form_pdf 
    file = @magazine.file 
    file_name=file.path.sub(".pdf",".jpg") 
    system("convert #{file.path} #{file_name}") 
end 

上述方法將創建PDF文件的JPG圖像,並將它們存儲在相同的目錄和原始PDF文件的相同名稱

+0

我假設你在你的系統上安裝imagemagic – 2013-04-25 10:47:06

+0

感謝您的回答。目前爲止我無法使用,但是我發現命令convert#{file.path}#{file_name}只返回我機器上的第一頁。一般來說,似乎是我的機器出現問題。 – 2013-04-25 11:59:09

+0

當我擁有所有這些圖像時,如何將它們插入到我的模型中?在我的文件系統中循環瀏覽它們?似乎對我來說有點不雅... – 2013-04-25 12:00:02