如何计算已锁定的pdf文件中的特定单词。
我在这里谈论年度报告。你可以在里面搜索,但你不能复制它(无论出于何种原因,没有意义)。
在谷歌搜索后,我仍然没有找到解决方案。
答案 0 :(得分: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的供应商工作。