在我的PDF中,我有一個包含10個圖像的頁面。使用c#2008將PDF文件拆分爲圖像文件?
我想將PDF文件分成10個獨立的圖像文件,並將它們保存在一個單獨的文件夾中。
請給我一個想法或樣本解決方案。
進出口使用C#2008
在我的PDF中,我有一個包含10個圖像的頁面。使用c#2008將PDF文件拆分爲圖像文件?
我想將PDF文件分成10個獨立的圖像文件,並將它們保存在一個單獨的文件夾中。
請給我一個想法或樣本解決方案。
進出口使用C#2008
我不知道這是不是還有一年後,有關的,但我只是做了它最近我自己,所以我想我只是回答反正。首先,你需要Ghostscript(http://sourceforge.net/projects/ghostscript/)一個古老的PS/PDF解析/渲染/轉換引擎。安裝完成後,請前往%PROGRAMDATA\gs\bin\
(或x86,如果您正在運行x64系統)並抓取gsdll32.dll
並將其複製到/ bin文件夾中。
然後您就需要所謂的超級轉換PDF2Image(http://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();
}
根據您的硬件,它不應該採取任何長於幾頁秒每頁。
我假設你想要從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);
}
}
}
聲明:我位奇蹟,該庫的供應商合作。