簡體   English   中英

如何使用 RMagick 和 Ruby 將 PDF 文件轉換為圖像

[英]How to convert PDF files to images using RMagick and Ruby

我想獲取一個 PDF 文件並將其轉換為圖像,每個 PDF 頁面都成為一個單獨的圖像。

將 .doc 或 .pdf 轉換為圖像並在 Ruby 中顯示縮略圖? ”是一個類似的帖子,但它沒有介紹如何為每個頁面制作單獨的圖像。

使用 RMagick 本身,您可以為不同的頁面創建圖像:

require 'RMagick'
pdf_file_name = "test.pdf"
im = Magick::Image.read(pdf_file_name)

上面的代碼會給你一個數組arr[] ,它會有一個對應頁面的條目。 如果要生成第五頁的 JPEG 圖像,請執行以下操作:

im[4].write(pdf_file_name + ".jpg")

但這會加載整個 PDF,因此速度可能會很慢。

或者,如果您想創建第五頁的圖像並且不想加載完整的 PDF 文件:

require 'RMagick'
pdf_file_name = "test.pdf[5]"
im = Magick::Image.read(pdf_file_name)
im[0].write(pdf_file_name + ".jpg")

ImageMagick可以用 PDF 做到這一點。 想必RMagick也可以做到,但我不熟悉它。

您鏈接到的帖子中的代碼:

require 'RMagick'
pdf = Magick::ImageList.new("doc.pdf")

pdf是一個ImageList對象,根據文檔將其許多方法委托給Array 您應該能夠遍歷pdf和呼叫write到單獨的圖像寫入文件。

由於我找不到在 RMagick 中逐頁處理 PDF 的方法,我建議首先使用pdftk 的burst命令將 PDF 拆分為頁面,然后在 RMagick 中處理各個頁面。 這可能不如多合一解決方案的性能,但不幸的是,沒有多合一解決方案出現。

還有用於 Ruby 的PDF::Toolkit可以連接到 pdftk,但我從未使用過它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM