Отримання кількості слів pdf-документа в Evince


22

Чи є спосіб отримати підрахунок слів PDF-документа, який я переглядаю в програмі перегляду PDF-файлів за замовчуванням Ubuntu у Evince? Я можу конвертувати документи у текстові файли та отримувати підрахунок слів з терміналу, але я б дуже хотів, щоб я міг швидко дістатись до них, не використовуючи термінал. Чи є якийсь плагін, який може це зробити, або він уже вбудований, і я просто його відсутній?

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

pdf  evince 

Відповіді:


32

Це можна зробити за допомогою командного рядка:

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

Дякую, але, як я вже говорив у запитанні, я б краще не використовував командний рядок для подібних речей.

4
@Chris Спробуйте потім інтегрувати систему ("<команда вище>") в код виведення.
Gödel

11

Як щодо швидкого баш-скрипту, що вимагає зухвалості та вибагливості. Якщо дзвонити без аргументу, він надасть вам діалогове вікно, щоб ви могли вибрати файл. Коли буде викликано аргумент (або після вказаного діалогового вікна), він одночасно відкриє файл у 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-файл, він одночасно відкриється в evince, і дасть вам кількість слів.

alt текст


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

10

Відповідь Олафа Лейдінгера у списку розсилки Evince:

Я думаю, що така функція краще підходить для редакторів документів, оскільки вони мають більше інформації про документ як звичайний переглядач, а підрахунок слів є тривіальним. Візьмемо приклад PDF-файл. Те, що ви бачите як текст, може насправді бути якоюсь векторною графічною формою. Навіть якщо текст міститься як такий у PDF-файлі, ці слова, які ви бачите, можуть складатися з декількох команд "намалювати текст у позиції (y, x)" - наприклад, у випадку змісту або кінця рядка. Таким чином, одне слово може вважатися кількома словами. Тому я думаю, що може бути важко надійно реалізувати таку функцію. Погляньте на pdftotext, щоб побачити, що я маю на увазі.

2
Який би файл не використовувався для визначення документа, він може вважатися "вихідним кодом", а Evince - машина, яка виконує код. Несправедливо (і неможливо) попросити редактор вихідного коду (наприклад, текстовий редактор) визначити, яким буде результат виконання, тому давайте просто подивимось на результат (тобто виведене зображення / текст у Evince / poppler). Реалізація в Evince була б корисною для мене, оскільки я "кодую" свої документи в мовно-агностичному текстовому редакторі і використовую Evince (через Pandoc та pdflatex) для "запуску" мого джерела. Лише наприкінці ми можемо бути впевнені, через що це пройшло. Розглянемо коментований код.
user29020

4

Я не вірю, що це можливо (ну це технічно можливо, але не було реалізовано).

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

Ви можете звернутися до розробників Evince і запитати, чи зацікавлені б вони в реалізації цієї функції.


1
Спасибі. Я зв’язався з ними, і я залишатиму це питання відкритим, поки не отримаю остаточної відповіді.

Коли ви почуєте відповідь, не соромтесь відповісти на власне запитання :)
8128

Евінт не є суто "глядачем". Створення та перегляд та редагування документа явно більший робочий процес, ніж просто "редагування", а потім "перегляд". Щодо питання: Evince наразі дозволяє копіювати вибраний текст. Це не суворо роль "погляду". Евінт може чудово дізнатись кількість підсумкових слів, оскільки це остаточний "рендерінг" того, що ми насправді читаємо (або надсилаємо видавцеві). У ньому вже є спосіб визначити винесені цілі слова (спробуйте двічі клацнути слово!). Я хотів би, щоб Evince вказав це у полі "Файл-> Властивості". Це вже повідомляє мені кількість сторінок (на основі візуалізації).
user29020
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.