如何计算锁定PDF中的特定单词

如何计算锁定PDF中的特定单词,pdf,word-count,Pdf,Word Count,如何计算锁定的pdf文件中的特定单词 我在这里谈论的是年度报告。你可以在里面搜索,但你不能从中复制(无论出于什么原因,都没有意义) 在谷歌搜索了很久之后,我仍然没有找到解决方案。如果您的文件包含文本(而不仅仅是扫描的图像),并且使用的字体包含从字形到字符的映射信息,那么您应该能够使用任何提供文本提取功能的PDF库从文件中提取文本 通过设置使用权限,通常禁止复制文本。许多PDF库忽略这些设置,并允许从锁定的PDF中提取文本 根据库的不同,您可以尝试提取整个文本并自己将其拆分为单词,或者将文本作为单

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

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


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

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

通过设置使用权限,通常禁止复制文本。许多PDF库忽略这些设置,并允许从锁定的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;
}
公共静态字典countWords(字符串文件)
{
字典字数=新字典();
使用(PdfDocument pdf=新PdfDocument(文件))
{
foreach(pdf.Pages中的PdfPage页面)
{
PdfCollection words=page.GetWords();
foreach(PdfTextData字(大写)
{
整数计数=0;
wordCounts.TryGetValue(word.Text,out count);
wordCounts[word.Text]=count++;
}
}
}
返回字数;
}

免责声明:我为Docotic.Pdf的供应商工作。

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

通过设置使用权限,通常禁止复制文本。许多PDF库忽略这些设置,并允许从锁定的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;
}
公共静态字典countWords(字符串文件)
{
字典字数=新字典();
使用(PdfDocument pdf=新PdfDocument(文件))
{
foreach(pdf.Pages中的PdfPage页面)
{
PdfCollection words=page.GetWords();
foreach(PdfTextData字(大写)
{
整数计数=0;
wordCounts.TryGetValue(word.Text,out count);
wordCounts[word.Text]=count++;
}
}
}
返回字数;
}

免责声明:我为Docotic.Pdf的供应商工作。

谢谢,可以计算两个或更多单词字符串的出现次数吗?是的,可以
GetWords
检索单词的有序集合。我的意思是,检索到的集合中的第一个元素是页面上最左边和最上面的单词。您可以开发一种算法来检查一个单词是否是多单词字符串的第一个单词。如果是,则检查第二个字符串,依此类推。谢谢,可以计算两个或更多单词字符串的出现次数吗?是的,可以
GetWords
检索单词的有序集合。我的意思是,检索到的集合中的第一个元素是页面上最左边和最上面的单词。您可以开发一种算法来检查一个单词是否是多单词字符串的第一个单词。如果是,则检查第二个,依此类推。