2012-09-10 193 views
-1

我試圖使用iTextSharp從pdf文件中提取數據,但我出現了兩個錯誤。其實我想從pdf文件中提取數據並將其存儲到數據庫中。c#從pdf文件中提取數據

這裏是我的代碼:

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Collections.Generic; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClient; 
using System.IO; 
using System.Text; 
using iTextSharp.text; 
using iTextSharp.text.pdf; 
using System.util.collections; 
using System.Linq; 

public partial class frm_CreatePDF : System.Web.UI.Page 
{ 
    public string P_InputStream3 = "~/My Documents/List Of Holidays 2012"; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     ExtractText(); 
    } 

    private string ExtractText() 
    { 
     PdfReader reader = new PdfReader(Server.MapPath(P_InputStream3)); 
     string txt = PdfTextExtractor.GetTextFromPage(reader, 2, new LocationTextExtractionStrategy()); 
     return txt; 
    } 
} 

和錯誤是:

  1. 'PdfTextExtractor' 這個名字不會在目前情況下
  2. 類型或命名空間名稱「存在LocationTextExtractionStrategy
+1

您是否添加了對dll的引用? – freebird

+0

首先,您需要添加對ItextSharp dll的引用,之後才能添加using語句以訪問包含該靜態類的名稱空間。 – Freeman

+0

添加了所有東西 – user1632377

回答

3

確保您帶來了在這兩個類是通過將using指令定義爲範圍的命名空間:

using iTextSharp.text.pdf.parser; 
+0

被試過了,但是顯示錯誤 – user1632377

+0

「命名空間'iTextSharp.text.pdf'中沒有類型或命名空間名稱'parser'(您是否缺少程序集引用?)」, ,這是我得到的錯誤 – user1632377

+0

你能找到這個錯誤嗎?或者你想讓我給出這個錯誤的解釋..... – user1632377

0

我猜你需要使用其中LocationTextExtractionStrategy定義所有的

0

首先另一個命名空間您需要添加到iTextSharp的DLL的引用,至極之後,你可以添加一個using語句來存取權限包含命名空間的靜態類

http://msdn.microsoft.com/en-us/library/wkze6zky%28v=vs.100%29.aspx

+0

我知道如何添加參考。你會告訴我錯過了什麼參考。你可以嗎??? – user1632377

+0

首先查看iTextSharp文檔示例,沒有人可以用心靈感應的方式閱讀您確切的問題。 – Freeman

+0

我已經給我的代碼和錯誤了。所以沒有人想通過心靈感應來閱讀這個問題。 – user1632377

0

這是一個較遲的答案,但我發現你的問題是:

您錯過了iTextSharp.text.pdf.parser using語句。收藏此下方的代碼:

using iTextSharp.text.pdf.parser; 

這應該能夠找到你的LocationTextExtractionStrategy相當不錯。

如果需要,您也可以直接在LocationTextExtractionStrategy後面加上iTextSharp.text.pdf.parser

string txt = PdfTextExtractor.GetTextFromPage(reader, 2, new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy()); 

但我會推薦前者。它更乾淨,更易於閱讀。