Получение количества слов PDF-документа в Evince

22

Можно ли каким-то образом узнать количество слов в документе PDF, который я просматриваю, в Evince, средстве просмотра PDF по умолчанию в Ubuntu? Я могу конвертировать документы в текстовые файлы и получать количество слов из терминала, но я бы очень хотел иметь возможность быстро получить их без использования терминала. Есть ли плагин, который может сделать это, или он уже встроен, и я просто скучаю по нему?

PS Я бы предпочел не менять своего средства просмотра, так как Evince является средством просмотра PDF по умолчанию в Ubuntu, и я очень хотел бы сделать как можно больше, используя приложения по умолчанию, поскольку многие из них, включая Evince, действительно хороши.


источник

Ответы:

32

Вы можете сделать это через командную строку:

pdftotext filename.pdf - | tr -d '.' | wc -w
Sid
источник
Спасибо, но, как я уже сказал в этом вопросе, я бы предпочел не использовать командную строку для такого рода вещей.
4
@Chris Попробуй интегрировать систему ("<команда выше>") в код evince.
Гедель
11

Как насчет быстрого bash-скрипта, требующего зенита и проявления. Когда вызывается без аргумента, он даст вам диалоговое окно, чтобы вы могли выбрать файл. При вызове с аргументом (или после указанного диалогового окна) он одновременно откроет файл в evince и выдаст диалоговое окно с количеством слов.

Другими словами, скопируйте следующее в текстовый файл, называемый 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

Теперь щелкните правой кнопкой мыши по некоторым файлам PDF в nautilus, выберите «Открыть с помощью ...», а затем откройте его с помощью evince-word-count.sh. Теперь, когда вы откроете PDF-файл, он одновременно откроется и покажет вам количество слов.

альтернативный текст

радостный
источник
Вы можете поместить этот файл в /home/$USER/.local/share/nautilus/scripts/, что делает его доступным по щелчку правой кнопкой мыши в Nautilus (ванильный файловый менеджер Ubuntu).
Даниэль Холм
10

Ответ Олафа Лейдингера в списке рассылки Evince:

Я думаю, что такая функция лучше подходит для редакторов документов, так как они имеют больше информации о документе в виде обычного средства просмотра и подсчет слов тривиален. Возьмите файл PDF в качестве примера. То, что вы видите как текст, на самом деле может быть какой-то векторной графической формой. Даже если текст содержится как таковой в файле PDF, эти слова, которые вы видите, могут состоять из нескольких команд «рисовать текст в позиции (y, x)» - например, в случае умлаутов или конца строки. Таким образом, одно слово может считаться несколькими словами. Поэтому я думаю, что может быть трудно реализовать такую ​​функцию надежно. Взгляните на pdftotext, чтобы понять, что я имею в виду.

источник
2
Какой бы файл не использовался для определения документа, его можно считать «исходным кодом», и Evince - это машина, которая выполняет код. Несправедливо (и невозможно) просить редактора исходного кода (например, текстового редактора) определить, каким будет результат выполнения, поэтому давайте просто посмотрим на результат (т.е. визуализированное изображение / текст в Evince / poppler). Внедрение в Evince было бы полезно для меня, так как я «кодирую» свои статьи в не зависящем от языка текстовом редакторе и использую Evince (через Pandoc и pdflatex) для «запуска» моего источника. Только в конце мы можем быть уверены, что это удалось. Рассмотрим закомментированный код.
user29020
4

Я не верю, что это возможно (ну, это технически возможно, но не было реализовано).

Вы должны помнить, что Evince - это средство просмотра документов, а подсчет слов - это функция, которая обычно требуется в редакторе (да, я знаю, что это не всегда так).

Возможно, вы захотите связаться с разработчиками Evince и спросить, будут ли они заинтересованы в реализации этой функции.

8128
источник
1
Спасибо. Я связался с ними и буду держать вопрос открытым, пока не получу окончательный ответ.
Когда вы услышите ответ, не стесняйтесь эффективно ответить на свой вопрос :)
8128
Evince не является строго «зрителем». Создание, просмотр и редактирование документа - это явно больший рабочий процесс, чем просто «редактирование», а затем «просмотр». Относительно вопроса: в настоящее время Evince позволяет копировать выделенный текст. Это не совсем роль «взгляда». Evince имеет отличную возможность выяснить итоговое количество слов, так как это последний «рендер» того, что мы на самом деле читаем (или отправляем издателю). У него уже есть способ идентифицировать визуализированные целые слова (попробуйте дважды щелкнуть слово!). Я хотел бы, чтобы Evince предоставил это в окне «Файл-> Свойства». Это уже говорит мне количество страниц (на основе рендеринга).
user29020 22.10.14