如何计算锁定的pdf文件中的特定字数?
我在这里谈论的是年度报告。你可以在里面搜索,但是你不能把它复制出来(不管是什么原因,都没有意义)。
我用谷歌搜索了很久,还是没有找到解决方案。
发布于 2013-03-24 14:23:25
如果您的文件包含文本(而不仅仅是扫描的图像),并且使用的字体包含从字形到字符的映射信息,那么您应该能够使用任何提供文本提取功能的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的供应商工作。
https://stackoverflow.com/questions/15593237
复制相似问题