2009-02-09 2 views
4

일반 텍스트 pdf 파일에서 텍스트 섹션을 추출하는 데 사용할 수있는 PDF 파일 파서를 아는 사람 있습니까? 특히 주석에 특정한 텍스트 섹션을 확실하게 추출 할 수있는 방법이 필요합니까?PDF 파일 파서를 찾고

델파이, C# RegEx 저는 마음을 모르겠습니다.

답변

5

xactpro의 PDF File Parser 기사가 정확히 필요한 것 같습니다. PDF의 형식을 설명하고 파서 (및 모델의 시각화를위한 또 다른 프로젝트)에 대한 전체 소스 코드를 제공합니다.

구문 분석기는 형식 별 용어를 사용하지만 쉽게 시각화를 사용하여 찾을 대상을 찾을 수 있습니다.

+0

링크가 끊어진 것 같습니다. – automatic

+1

@automatic - 사이트 전체가 다운 된 것처럼 보입니다. –

1

필요한 기능을 지원하는지 확실하지 않지만 Google에서는 abcPDF을 사용하고 있습니다.

+0

나는 생각하지 않는다 abcPDF는 파싱을 지원합니다. –

+0

@ 리차드 스 잘레, 확실하지 않았습니다. 피처 매트릭스는 pdf를 읽는 것을 지원하지만 PDF의 일부를 액세스하는 객체 모델을 API로 가져다 주는지 여부는 확실하지 않습니다. – Jeremy

+0

필자는 광고 기능을 거부하는만큼 멀지는 않을 것입니다. :) 마지막으로 사용했을 때 지원하지 않았지만 기능을 작성하는 것이 확실히 성공했습니다. –

0

나는이 PDF 파서의 모든 기능을 모르는에서 좀 걸릴 수 있지만, Aspose 꽤 포괄적 인 하나입니다. 불행히도 우리는 두 가지 버그를 보았고, 오랫동안 그들이 고쳐질 때까지 기다렸습니다.

ITextSharp는 .Net을위한 가장 일반적인 오픈 소스 PDF 파서 인 것으로 보입니다.

1

abcPDF는 그들이에 대한 도움말에 아주 좋은 섹션이, 주석을 추출 할 수 없지만, 그것을 처리하는 코드는 일반적으로 :

for (int objectIndex = 0; objectIndex < theDoc.ObjectSoup.Count; objectIndex++) 
     { 
      try 
      { 
       IndirectObject element = theDoc.ObjectSoup.ElementAt(objectIndex); 

       string elementType = element.GetType().ToString(); 
       switch (elementType) 
       { 
        case "WebSupergoo.ABCpdf8.Objects.Annotation": 
         //process the annotation, which could be all kinds of stuff 
         WebSupergoo.ABCpdf8.Objects.Annotation annotation = (WebSupergoo.ABCpdf8.Objects.Annotation)element; 

         ProcessAnnotation(annotation); 

...