在Evince中获取pdf文档的字数


22

有什么方法可以获取我在Ubuntu默认的PDF查看器Evince中查看的PDF文档的字数?我可以将文档转换为文本文件,并从终端获取字数统计,但是我很希望能够无需使用终端即可快速了解它们。有没有可以做到这一点的插件,或者它已经内置并且我只是想念它?

PS我不希望更改查看器,因为Evince是Ubuntu中的默认PDF查看器,并且我想尽可能多地使用默认应用程序,因为其中包括Evince在内的许多应用程序都非常好。

pdf  evince 

Answers:


32

您可以通过命令行执行此操作:

pdftotext filename.pdf - | tr -d '.' | wc -w

谢谢,但是正如我在问题中说的那样,我宁愿不必使用命令行来进行此类操作。

4
@Chris然后尝试在可视代码中集成system(“ <command below>”)。
哥德尔

11

一个需要禅宗表情的快速bash脚本怎么样?如果不带参数调用它,它将为您提供一个对话框,以便您选择一个文件。当使用参数调用时(或在所述对话框之后),它将同时打开文件并为您提供一个带有字数的对话框。

换句话说,将以下内容复制到一个名为evince-word-count.sh或之类的文本文件中,将其保存在路径中的某个位置(例如~/bin/),使其可执行(通过Nautilus的右键单击和属性,或使用chmod +x ~/bin/evince-word-count.sh),

#!/bin/bash
if [ "$#" -gt "0" ] ; then
    filename="$1"
else
    filename="$(zenity --file-selection)"
fi
evince "$filename" &
zenity --info --text "This PDF has $(pdftotext "$filename" - | tr -d '.' | wc -w) words"
exit 0

现在,右键单击nautilus中的某些PDF,选择“使用...打开”,然后使用evince-word-count.sh打开它。现在,当您打开PDF时,它会同时打开并给您一个字数。

替代文字


您可以将此文件放在/home/$USER/.local/share/nautilus/scripts/中,这可以通过右键单击Nautilus(Ubuntu vanilla文件mananger)来使用。
丹尼尔·霍尔姆

10

Olaf Leidinger在Evince邮件列表上的回复:

我认为这样的功能更适合文档编辑器,因为他们以普通查看者的身份获取有关文档的更多信息,并且对单词进行计数是微不足道的。以PDF文件为例。您所看到的文本实际上可能是某种矢量图形形状。即使该文本包含在PDF文件中,您看到的那些单词也可能由多个“在(y,x)位置绘制文本”命令组成-例如,在变音符或行尾的情况下。因此,一个单词可能算作多个单词。因此,我认为可能很难可靠地实现这种功能。看看pdftotext看看我的意思。

2
任何用于定义文档的文件都可以视为“源代码”,而Evince是执行代码的机器。要求源代码编辑器(例如,文本编辑器)确定执行的输出是不公平的(也是不可能的),所以让我们只看一下输出(即Evince / poppler中的渲染图像/文本)。在Evince中实施代码对我很有用,因为我是在与语言无关的文本编辑器中“编码”我的论文,并使用Evince(通过Pandoc和pdflatex)“运行”我的源代码。只有最后,我们才能确定是什么成功了。考虑注释的代码。
user29020 2014年

4

我不认为这是可能的(从技术上讲这是可行的,但尚未实现)。

您必须记住Evince是文档查看器,而字数统计是编辑器中通常更需要的功能(是的,我知道并非总是如此)。

您可能想联系Evince开发人员,并询问他们是否对实现此功能有兴趣。


1
谢谢。我已与他们联系,在得到明确答复之前,我将一直公开提问。

当您听到回音时,请随时有效地回答您自己的问题:)
8128

Evince并非严格意义上的“查看者”。创建,查看和编辑文档显然比仅“编辑”然后“查看”更大的工作流程。关于此问题:Evince当前允许复制所选文本。严格来说,这不是“查看”角色。Evince可以很好地找出产生的字数,因为它是我们实际阅读(或发送给出版商)的最终“渲染器”。它已经可以识别整个单词(尝试双击一个单词!)。我希望Evince在“文件->属性”框中提供此功能。它已经告诉我页面数(基于渲染)。
user29020 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.