本主题中的回答帮助我理解了为什么有时PDF找不到单词,以及为什么我在使用时不断获得不同的字数不同的PDF字数统计程序。我决定使用xpdf
。我将其转换为文本并添加了-layout标记,然后用Word2003打开了生成的文本文件。我记下了单词计数。然后,不幸的是,我决定删除-relayout标记。不过,这次的字数有所不同。
为什么该标签会影响字数?有没有准确的方法来计算字数PDF文件如果必须的话,我甚至会为这样的软件付费,只要它给我正确的字数。
(我检查了另一个主题,但我想我会发现我刚才提供的解决方案是否能解决所有问题。还有一个主题推荐advancedpdf。)
我认为没有可靠的单词计数。例如,为了让你的生活更艰难,可以将这个可爱的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>
我建议使用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()来计算它们。希望这很有用。:-)