2013-01-24 33 views
-1

我想解析PDF文件,有複選框,單選按鈕,下拉菜單和文本框。而我想解析PDF文件,以獲得這些控件的位置和價值。 我使用C#和iTextSharp的獲得從PDF文件中的表單元素

任何建議/想法會有所幫助。

我所做到目前爲止REF:http://simpledotnetsolutions.wordpress.com/2012/04/08/itextsharp-few-c-examples/

public void ReadPDFformDataPageWise(string inputFile) 
    { 
     PdfReader reader = new PdfReader(inputFile); 
     AcroFields form = reader.AcroFields; 
     try 
     { 
      for (int page = 1; page <= reader.NumberOfPages; page++) 
      { 
       foreach (string key in form.Fields.Keys) 
       { 
        switch (form.GetFieldType(key)) 
        { 
         case AcroFields.FIELD_TYPE_CHECKBOX: 
          //Create Checkbox 
         case AcroFields.FIELD_TYPE_COMBO: 
         //Create Combo Box 
         case AcroFields.FIELD_TYPE_LIST: 
         //Create List 
         case AcroFields.FIELD_TYPE_RADIOBUTTON: 
         //Create Radio button 
         case AcroFields.FIELD_TYPE_NONE: 
         case AcroFields.FIELD_TYPE_PUSHBUTTON: 
         //Create Submit Button 
         case AcroFields.FIELD_TYPE_SIGNATURE: 
         //Create Signature 
         case AcroFields.FIELD_TYPE_TEXT: 
          //Create textbox/Qs header 
          int fileType = form.GetFieldType(key); 
          string fieldValue = form.GetField(key); 
          float[] a = form.GetFieldPositions(key); 
          string translatedFileName = form.GetTranslatedFieldName(key); 
          AcroFields.Item test= form.GetFieldItem(key); 

          break; 
        } 
       } 
      } 
     } 
     catch 
     { 
     } 
     finally 
     { 
      reader.Close(); 
     } 
    } 
+0

有什麼建議? – user1621791

回答

2

爲什麼你指的是非官方的例子,而不是官方網站?

http://itextpdf.com/examples/iia.php?id=121找出如何列出在AcroForm各個領域,得到他們的名稱和類型。如果您有複選框或無線電字段,則需要按照相同示例中的說明獲取外觀狀態。

如果你想知道頁碼和每個字段的位置,你需要這個例子:http://itextpdf.com/examples/iia.php?id=163

查找以得到一個FieldPosition實例的方法。

如果您想了解更多關於針對現場設置標誌(密碼字段,多,...)來看看這個例子:如果你說http://itextpdf.com/examples/iia.php?id=237

Lowagie先生,我會投下你的答案,因爲你給我的例子在Java中,我只接受C#的答案!請轉到:http://sourceforge.net/p/itext/code/HEAD/tree/book/

我們已經投資將所有書籍示例移植到C#中。所有你需要做的就是走下目錄樹找到相應的例子。例如:http://sourceforge.net/p/itext/code/HEAD/tree/book/src/part2/chapter06/FormInformation.java

如果你說:關你實例工作,那麼也許你的表格是一個XFA表單,而不要AcroForm。在這種情況下,不存在「場地的位置」這樣的事情;通過XFA,PDF文件充當XML模板和數據集的容器。這個XML是動態呈現的,每個字段的位置取決於數據集。如果您的問題是關於XFA,請重新考慮。

注意,這個答案花了我的錢,因爲我分享知識,你應該從閱讀the book I wrote,而不是請求,揭示你沒有做很大的努力來尋找解決自己;-)

問題得到

我沒有downvote的問題,但我明白爲什麼別人會這麼做。