2013-01-24 3 views
-1

확인란, 라디오 버튼, 드롭 다운 및 텍스트 상자가있는 PDF 파일을 구문 분석하고 싶습니다. 그리고 PDF 파일을 구문 분석하여 각 컨트롤의 위치와 값을 가져 오려고합니다. . C# 및 itextsharp를 사용하고 있습니다.PDF 파일에서 양식 요소 가져 오기

어떤 제안이나 아이디어가 도움이 될 것입니다. 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

이 왜 오히려 공식 웹 사이트에보다, 비공식 예를 참조됩니다

는 지금까지 REF를 했는가?

AcroForm의 모든 필드를 나열하고 이름과 유형을 얻는 방법을 알아 보려면 http://itextpdf.com/examples/iia.php?id=121을 참조하십시오. 확인란이나 라디오 필드가있는 경우 동일한 예와 같이 모양 상태를 가져와야합니다. FieldPosition 인스턴스를 얻는 방법에 대한 http://itextpdf.com/examples/iia.php?id=163

봐 : 페이지 번호 및 각 필드의 위치를 ​​알고 싶다면

, 당신은이 예제를해야합니다. , 씨 Lowagie을 : 당신이 말하는 경우 http://itextpdf.com/examples/iia.php?id=237

:

당신은 (암호 필드는 여러 줄이 ...)이 예를 살펴 분야에 대해 설정된 플래그에 대한 자세한 내용을 알고 싶다면 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

귀하의 사례 중 아무 것도 작동하지 않는다면, 귀하의 양식은 AcroForm 대신 XFA 양식입니다. 그런 경우에는 "현장의 위치"와 같은 것이 없다. XFA를 사용하면 PDF 파일이 XML 템플리트 및 데이터 세트의 컨테이너 역할을합니다. 이 XML은 즉시 렌더링되며 각 필드의 위치는 데이터 집합에 따라 다릅니다. 귀하의 질문이 XFA에 관한 것이라면 다시 생각해보십시오.

the book I wrote에서 얻은 지식을 공유하고 있기 때문에이 해결책은 나에게 돈이 들며, 해결책을 찾기 위해 많은 노력을 기울이지 않았다는 것을 나타내는 질문을하는 대신

나는이 질문에 downvote을하지 않았지만, 왜 다른 사람이 그렇게하는지 이해합니다.