2013-03-23 1 views
1

잠긴 PDF 파일에서 특정 단어를 어떻게 집계 할 수 있습니까?잠긴 pdf에서 특정 단어를 계산하는 방법

여기 연례 보고서에 대해 이야기하고 있습니다. 당신은 안으로 검색 할 수 있지만, 그것을 밖으로 복사 할 수 없습니다 (어떤 이유로, 나던 이해가).

영원히 인터넷 검색 후, 난 여전히 해결책을 발견 havent 한. 파일은 텍스트 (뿐 아니라 스캔 한 이미지) 및 사용 된 글꼴이 포함되어있는 경우

답변

1

는 텍스트 추출 기능을 제공하는 모든 PDF 라이브러리를 사용하여 파일에서 텍스트를 추출 할 수 있어야한다 문자 상형 문자에서 매핑에 대한 정보가 포함되어 있습니다. 텍스트의

복사는 일반적으로 사용 권한을 설정하여 금지되어 있습니다. 많은 PDF 라이브러리는 이러한 설정을 무시하고 잠긴 PDF에서 텍스트 추출을 허용합니다.

라이브러리에 따라, 당신은 전체 텍스트를 추출하고 단어로 자신을 그것을 분할 또는 (라이브러리가 당신을 위해 단어에 텍스트를 분할 할 수있는 경우) 단어의 모음으로 텍스트를 추출 시도 할 수도 있습니다. 여기

는 PDF 문서에있는 단어와 얼마나 많은 시간을 그들이 사용에 대한 정보가 포함되어 사전을 구축하는 방법을 보여줍니다 Docotic.Pdf library에 대한 샘플 코드입니다.

public static Dictionary<string, int> countWords(string file) 
{ 
    Dictionary<string, int> wordCounts = new Dictionary<string, int>(); 

    using (PdfDocument pdf = new PdfDocument(file)) 
    { 
     foreach (PdfPage page in pdf.Pages) 
     { 
      PdfCollection<PdfTextData> words = page.GetWords(); 
      foreach (PdfTextData word in words) 
      { 
       int count = 0; 
       wordCounts.TryGetValue(word.Text, out count); 
       wordCounts[word.Text] = count++; 
      } 
     } 
    } 

    return wordCounts; 
} 

면책 조항 : Docnect.Pdf의 공급 업체에서 근무하고 있습니다.

+0

감사합니다. 두 개 이상의 단어 문자열의 발생을 계산할 수 있습니까? – Spurious

+0

예, 가능합니다. 'GetWords'는 ​​정렬 된 단어 모음을 검색합니다. 검색된 컬렉션의 첫 번째 요소는 페이지의 가장 왼쪽과 맨 위에있는 단어입니다. 단어가 다중 단어 문자열의 첫 번째 단어인지 확인하는 알고리즘을 개발할 수도 있습니다. 그럴 경우 두 번째 것 등을 확인하십시오. – Bobrovsky

관련 문제