Answers:
快速回答:
pdftotext myfile.pdf - | wc -w
长答案:
如果在Unix上,则可以使用pdftotext
:
然后在生成的文件中进行字数统计。如果在Unix上,则可以使用:
wc -w converted-pdf.txt
得到字数。
另外,请参见frabjous的注释-基本上,您可以通过管道传递stdout
到一个临时文件来一步完成此操作:
pdftotext myfile.pdf - | wc -w
pdftotext
是,Xpdf的一部分也可用于Windows平台。Xpdf下载页面位于:foolabs.com/xpdf/download.html。wc
也可以找到,但可以选择使用几乎任何一种文字处理程序,例如word或LibreOffice Writer。他们也算单词。(对于LibreOffice Writer,请转到“文件”->“属性”->“统计”)
这是一项艰巨的任务,并非易事。如果您确实想要准确的结果,请逐段将PDF查看器复制到文本文件中,然后使用该wc -w
工具进行检查。pdftotext
在这种情况下不使用的原因是:数学公式也可能进入输出并被视为“单词”。(或者,您可以编辑从中获得的输出pdftotext
)。标题失败的另一个原因是:标题“ 4.3.2 Foo Bar”被视为三个单词。
一种解决方法是只计算[A-Za-z]中以char开头的单词。所以我通常要做的是两步方法:
获取uniq单词列表,并检查内部是否有太多误报:
pdftotext foo.pdf - | tr " " "\n" | sort | uniq | grep "^[A-Za-z]" > words
我在这里不使用字典,因为某些拼写错误不会算作单词。
获取此单词列表并将其grep到pdftotext的输出中:
pdftotext foo.pdf - | tr " " "\n" | grep -Ff words | wc -l
我知道可以在一个衬套中完成此操作,但随后我不容易看到第一步的过滤结果。如下面Moi-F
的评论所述,这可能会对您有所帮助(谢谢)。
grep -Ff words
,因为grep抱怨“不匹配[或[^””。在手册页上:`-F,--fixed-strings将PATTERN解释为固定字符串的列表,由换行符分隔,其中任何一个都将被匹配。(-F由POSIX指定。)```
我刚刚试用了一个免费程序,即Translator's Abacus。您可以拖放各种文件类型(包括PDF),它会弹出一个浏览器,其中包含每个文档的字数统计报告。对我来说很好。(它是专门为字数创建的,只有435 KB ...,而不是“大型应用程序”)。译者的算盘不适用于PDF 1.5或更高版本。
或者:您可以只用Ctrl+ A来选择Acrobat Reader中的所有文本,然后将其复制粘贴到Microsoft Word之类的程序中(该程序在屏幕底部的状态栏上具有单词计数)。
我发现abracadabra工具中包含的单词计数器很方便。虽然安装有点古怪。
您可以将Adobe Acrobat的控制台JavaScript与以下代码配合使用,该代码是我从forum.adobe.com上Dave Merchant的回答中摘录的:
var cnt=0;
for (var p = 0; p < this.numPages; p++) cnt += getPageNumWords(p);
console.println("There are " + cnt + " words in this file.");
已在Windows 7 SP1 x64 Ultimate上使用Adobe Acrobat Pro DC 2018.011.20040测试。
要启用JavaScript控制台,请执行以下操作:
要启动JavaScript控制台窗口:
CTRL + J
仅供参考,如果您有与PDF相对应的LaTeX源:正确LaTeX文档的字数统计。
译者自2000年左右开始使用的事实上的标准是AnyCount字数统计工具,它以PDF和37种其他格式进行字数统计。
pdftotext
:不要忘记e。您可以使用一个命令:pdftotext myfile.pdf - | wc -w
。