1

如何计算锁定的 pdf 文件中的特定单词。

我在这里谈论年度报告。你可以在里面搜索,但你不能复制出来(不管出于什么原因,没有意义)。

在永远谷歌搜索之后,我仍然没有找到解决方案。

4

1 回答 1

1

如果您的文件包含文本(而不仅仅是扫描的图像)并且使用的字体包含有关从字形到字符的映射的信息,那么您应该能够使用任何提供文本提取功能的 PDF 库从文件中提取文本。

通常通过设置使用权限来禁止复制文本。许多 PDF 库忽略这些设置并允许从锁定的 PDF 中提取文本。

根据库的不同,您可以尝试提取整个文本并将其自己拆分为单词,或者将文本提取为单词的集合(如果库可以为您将文本拆分为单词)。

这是Docotic.Pdf 库的示例代码,它展示了如何构建包含有关在 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 的供应商工作。

于 2013-03-24T06:23:24.847 回答