2009-09-15 76 views
3

在我的PDF中,我有一個包含10個圖像的頁面。使用c#2008將PDF文件拆分爲圖像文件?

我想將PDF文件分成10個獨立的圖像文件,並將它們保存在一個單獨的文件夾中。

請給我一個想法或樣本解決方案。

進出口使用C#2008

回答

1

我不知道這是不是還有一年後,有關的,但我只是做了它最近我自己,所以我想我只是回答反正。首先,你需要Ghostscript(http://sourceforge.net/projects/ghostscript/)一個古老的PS/PDF解析/渲染/轉換引擎。安裝完成後,請前往%PROGRAMDATA\gs\bin\(或x86,如果您正在運行x64系統)並抓取gsdll32.dll並將其複製到/ bin文件夾中。

然後您就需要所謂的超級轉換PDF2Imagehttp://www.softwaresigloxxi.com/downloading_superPDF2ImageConverter.html)封閉源代碼的PDF庫,抓住從.zip文件的Pdf2Image.dll並將其複製到你的/ bin文件夾。

下面是有關如何使用這兩個庫的多個PDF頁面轉換爲圖像一個簡單的例子:

using Pdf2Image; 

-

const string _filename = "/3.pdf"; 
    // Instantiate the component 
    var p2i = new Pdf2ImageConverter(_filename); 

    // Get page count of a PDF file 
    int pages = p2i.GetPageCount(); 
    Response.Write(pages); 

    // loops through each page 
    for (int i = 1; i < pages; i++) 
    { 
    // Get size of any page 
    int width, height; 
    p2i.GetPageSize(i, out width, out height); 

    // converts the page to PNG format (returns bitmap object with original size) 
    var pdfimage = p2i.GetImage(i, width, Pdf2ImageFormat.PNG); 
    pdfimage.Save(string.Format("/{0}.png",i)); 
    pdfimage.Dispose(); 
    } 

根據您的硬件,它不應該採取任何長於幾頁秒每頁。

1

我假設你想要從PDF文件中的特定頁面提取圖像並將這些圖像保存到單獨的文件中。

如果我是對的,那麼你可能想看看Docotic.Pdf library。這裏展示瞭如何提取從PDF頁面圖像到指定文件夾中的示例:

static void ExtractImagesFromPdfPageIntoFolder() 
{ 
    string pathToPdf = ""; 
    int pageIndex = 0; 
    string outputFolder = ""; 
    using (PdfDocument pdf = new PdfDocument(pathToPdf)) 
    { 
     for (int i = 0; i < pdf.Pages[pageIndex].Images.Count; i++) 
     { 
      string imageName = string.Format("image{0}", i); 
      string outputName = Path.Combine(outputFolder, imageName); 
      string savedPath = pdf.Pages[pageIndex].Images[i].Save(outputName); 
     } 
    } 
} 

聲明:我位奇蹟,該庫的供應商合作。