如何使用免費PDF控件從PDF文檔中提取文本和圖片
概要
現在手頭的項目有一個需求是從PDF文檔中提取文本和圖片,我以前也使用過像iTextSharp, PDFBox 這些免費的PDF插件,可是這次都測試了一下,或多或少有一些地方不是很滿意。最后同事推薦我使用免費的Spire.PDF,結果真是讓我驚喜。最重要的是,作為一家中國企業,他們還能提供完全沒有時差的免費中文技術支持。所以迫不及待的想和大家分享一下我的使用經驗。
開發環境需求
首先,從Codeplex官網下載免費的Spire.PDF :http://freepdf.codeplex.com/。安裝好程序后,添加Spire.License.dll, Spire.Pdf.dll 這兩個引用到我們的工程程序。免費Spire.PDF支持.NET 2.0--.NET4.5版本。根據自己的項目需求添加相應文件夾里的.dll就可以。
操作步驟
前面提到過,我們需要從PDF文檔里將文本和圖片單獨獲取出來。使用Spire.PDF,只需要幾行代碼就能完成。下面是詳細的操作步驟。
1. 生成一個PDF,將文本和圖片添加到PDF里面。
2. 從PDF文檔中提取所有圖片。
3. 從PDF文檔中提取所有文本。
下面的代碼示例是講如何創建一個空的PDF文檔,將文本和圖片加進PDF。
PdfPageBase page = doc.Pages.Add();
// 添加文本
page.Canvas.DrawString( " Demo of extract text and imgae from PDF! ",
new PdfFont(PdfFontFamily.Helvetica, 20f),
new PdfSolidBrush(Color.Black), 10, 10);
// 添加圖片
PdfImage image = PdfImage.FromFile( " pdf.png ");
float width = image.Width * 0.75f;
float height = image.Height * 0.75f;
float x = (page.Canvas.ClientSize.Width - width) / 2;
page.Canvas.DrawImage(image, x, 60, width, height);
PdfImage image2 = PdfImage.FromFile( " image.jpg ");
width = image2.Width * 0.75f;
height = image2.Height * 0.75f;
page.Canvas.DrawImage(image2, x- 100, 220, width, height);
doc.SaveToFile( " sample.pdf ");
生成的PDF文件
下面的代碼將展示如何從PDF文檔中獲取圖片。同樣,也只需要幾行代碼。
IList<Image> images = new List<Image>();
foreach (PdfPageBase page in doc.Pages)
{
if (page.ExtractImages() != null)
{
foreach (Image image in page.ExtractImages())
{
images.Add(image);
}
}
}
doc.Close();
int index = 0;
foreach (Image image in images)
{
String imageFileName = String.Format( " Image-{0}.png ", index++);
image.Save(imageFileName, ImageFormat.Png);
}
運行后,所有的圖片被保存為了.png格式。在debug文件夾里可以看到我們從PDF文檔中獲取的兩幅圖像。
下面的代碼將顯示如何從PDF文檔中提取文本。
doc.LoadFromFile( " sample.pdf ");
StringBuilder buffer = new StringBuilder();
foreach (PdfPageBase page in doc.Pages)
{
buffer.Append(page.ExtractText());
}
doc.Close();
String fileName = " TextInPdf.txt ";
File.WriteAllText(fileName, buffer.ToString());
buffer = null;
提取的文本被保存為了.txt文件。詳情見下圖:
總結
總的來說,網上有很多用來操作PDF文檔的第三方控件。Free Spire.PDF的優點在於免費,易用,大大節省了開發者的時間。但是免費版本在加載和寫出時,PDF頁面被限制在了十頁以內。不過這已經足夠我項目的需要了。如果你的項目超出限制,也有收費版Spire.PDF可以使用。官方提供30天免費試用。