2009-01-10 46 views
19

我需要從我的服務器上的PDF文件中提取所有圖像。我不想要PDF頁面,只有圖像處於原始尺寸和分辨率。如何從PDF文件中提取圖像?

我該如何用Perl,PHP或任何其他基於UNIX的應用程序(我將使用PHP的exec函數調用)執行此操作?

+0

您的標題含糊不清。它可能應該是「如何使用PHP從PDF文件中提取圖像」 – Soviut 2009-01-10 08:28:03

+0

如何知道每個圖像在頁面上的位置?據我所知,PDF文件不記錄這些信息。 – 2009-01-10 08:32:05

回答

21

pdfimages不只是那。它是poppler-utils和xpdf-utils軟件包的一部分。

從手冊頁:

Pdfimages保存來自可移植文檔格式(PDF)文件作爲便攜式像素圖(PPM)的圖像,便攜式點陣圖(PBM),或JPEG文件。

Pdfimages讀取PDF文件,掃描一個或多個頁面,PDF文件,並寫入一個PPM,PBM,或JPEG文件爲每個圖像,image-root-nnn.xxx,其中nnn是圖像數而xxx是圖像類型(.ppm,.pbm,.jpg)。

注意:pdfimages從PDF文件中提取原始圖像數據,而不執行任何額外的轉換。由PDF內容流完成的任何旋轉,裁剪,顏色反轉等操作都將被忽略。

+0

我認爲安裝xpdf時會安裝軟件包。 – PolyThinker 2009-01-10 15:22:20

11

關於Perl,你有沒有檢查過CPAN

2

pdfimages很好,因爲它不重新編碼,但只提取jpegs。但有一個bug:

pdfimages來自包「poppler-utils」或從更大的「xpdf-utils」。至少在Ubuntu中已經預裝了「poppler-utils」。 poppler-utils 10.0.3(Ubuntu 9.04 Jaunty)中的pdfimages仍不會對選項「-j」提取「.jpg」做出反應。它總是提取「.ppm」。

作爲一種變通方法,你可能會取代 「poppler的-utils的」 帶 「的xpdf-utils的」: $ sudo易於得到安裝的xpdf-utils的

與親切的問候,

+++奧利弗