2014-11-06 148 views
-1

從PDF中提取圖像時出現問題。我嘗試使用GhostScript,但圖像是用像素化的齒像內襯邊緣提取的。沒有任何我嘗試改進它。增加DPI時,提取的圖像太大。提取時某些東西正在降低圖像質量。使用C從PDF中提取圖像#

我希望任何人推薦一個包來執行這樣的操作 - 無論是付費還是免費。

+0

我對PdfSharp有很好的使用經驗。示例源代碼可以在這裏找到:http://www.pdfsharp.net/wiki/ExportImages-sample.ashx?AspxAutoDetectCookieSupport=1。 – Sjips 2014-11-06 08:27:48

+0

我也爲我的項目使用了PdfSharp – TheProvost 2014-11-06 08:55:16

+0

實際上,任何通用PDF庫都應該允許您以自然分辨率提取嵌入的位圖。 – mkl 2014-11-06 09:40:16

回答

1

有足夠多的通用PDF庫可用於從PDF中提取圖像。並非所有這些都提供了一種簡單的方法。

作爲Docotic.Pdf library的開發者之一,我可以推薦它來完成這項任務。

這裏是一個演示瞭如何從PDF中提取所有圖像樣本:

static void ExtractImagesFromPdfPages() 
{ 
    string path = ""; 
    using (PdfDocument pdf = new PdfDocument(path)) 
    { 
     for (int i = 0; i < pdf.Pages.Count; i++) 
     { 
      for (int j = 0; j < pdf.Pages[i].Images.Count; j++) 
      { 
       string imageName = string.Format("page{0}-image{1}", i, j); 
       string imagePath = pdf.Pages[i].Images[j].Save(imageName); 
      } 
     } 
    } 
} 

圖書館將無法重新取樣圖像。它將保存與PDF完全一樣的文件。

+0

'pdf.Pages [i] .Images [j]'返回頁面資源中的所有圖像,還是返回頁面上使用的圖像?後者不一定包括來自資源的所有圖像,而是包含來自使用過的xobjects的圖像和圖像。 – mkl 2014-11-07 07:55:34

+0

@mkl它返回所有圖像(內聯而不是) – Bobrovsky 2014-11-07 08:07:39

+0

啊,這很好。僅來自頁面資源的圖片可能會產生誤導。 – mkl 2014-11-07 08:15:32