获取PDF文件的正确字数

时间:2012-03-01 14:23:55

标签: pdf xpdf

this topic中的回答帮助我理解为什么有时我的 PDF无法找到一个单词以及为什么我在使用时会不断获得不同的字数 不同的PDF字数统计程序。我决定使用xpdf。我把它转换成了文字 并添加了-layout标记,然后使用Word 2003打开生成的文本文件。 我注意到了计数这个词。不幸的是,我决定删除-layout标签。 但这一次,字数不同。

为什么该标签会影响字数?有没有一种准确的方法来查找单词计数 一个PDF文件?我甚至会付这样的软件,如果我不得不支付给我   正确的单词数。

(我检查了another topic,但我想我会发现我刚刚提供的解决方案是否可以解决所有问题。还有另一个主题建议使用advancedpdf。)

2 个答案:

答案 0 :(得分:1)

我想说没有可靠的字数统计。例如,可以让你的生活更加艰难,将这个可爱的Stackoverflow答案的每个角色放入一个文本对象中并定位这样的对象,这样只有在渲染时才会为人类提供有意义的段落。像这样:

<html><body><style>
div {float: left;}
</style><div><p>S</p></div><div><p>t</p></div><div><p>a</p></div>
<div><p>c</p></div><div><p>k</p></div>

答案 1 :(得分:0)

我建议使用Java的开源解决方案。首先,您必须解析pdf文件并使用Tika提取所有文本。

然后我相信你可以通过扫描提取的文本并计算单词来实现这一点。

示例代码如下所示:

 if (f.getName().endsWith(".txt")) 
        {
            in = new BufferedReader(new FileReader(f));
            StringBuilder sb = new StringBuilder();
            String s = null;
            while ((s = in.readLine()) != null) 
                sb.append(s);

            String[] tokenizedTerms = sb.toString().replaceAll("[\\W&&[^\\s]]", "").split("\\W+");   //to get individual terms

        }     

在tokenizedTerms数组中,您将获得文档的所有术语(单词),您可以通过调用tokenizedTerms.length()来计算它们。希望这很有用。 : - )