2013-03-23 156 views
1

如何計算被鎖定的pdf文件中的特定單詞。如何計算鎖定的pdf文件中的特定單詞

我在這裏談論的年度報告。你可以在裏面搜索,但你不能複製它(無論什麼原因,沒有意義)。

永遠谷歌搜索後,我仍然還沒有找到一個解決方案。

回答

1

如果您的文件包含文本(不只是掃描圖像)和常用的字體包含字形,從字符映射信息,那麼你應該能夠提取使用任何PDF庫,提供文本提取功能的文件文本。文字

複製通常是通過設置使用權限禁止。許多PDF庫忽略這些設置並允許從鎖定的PDF中提取文本。

根據庫,你可以嘗試提取全部文本,並將其拆分成自己的話或提取文本字的集合(如圖書館可以分裂成文本字你)。

這裏是Docotic.Pdf library一個示例代碼,演示瞭如何構建一個包含在PDF文檔中找到的單詞,多少次他們使用的信息字典。

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; 
} 

聲明:我爲Docotic.Pdf的供應商工作。

+0

謝謝,是否有可能計數一個兩個或更多字串的出現? – Spurious 2013-03-24 07:58:24

+0

是的,這是可能的。 'GetWords'檢索單詞的有序集合。我的意思是檢索到的集合中的第一個元素是頁面上最左邊和最上面的單詞。您可能會開發一種算法來檢查單詞是否是多字詞串的第一個單詞。如果是,則檢查第二個等等。 – Bobrovsky 2013-03-24 08:08:50

相關問題