Sprawdzanie liczby słów w dokumencie pdf w Evince

22

Czy jest jakiś sposób, aby uzyskać liczbę słów w dokumencie PDF, który przeglądam w Evince, domyślnej przeglądarce plików PDF w Ubuntu? Jestem w stanie przekonwertować dokumenty na pliki tekstowe i uzyskać liczbę słów z terminala, ale chciałbym móc szybko do nich dostać bez konieczności korzystania z terminala. Czy jest jakaś wtyczka, która może to zrobić, czy jest już wbudowana i po prostu jej brakuje?

PS Wolałbym nie zmieniać mojej przeglądarki, ponieważ Evince jest domyślną przeglądarką plików PDF w Ubuntu i chciałbym zrobić jak najwięcej przy użyciu domyślnych aplikacji, ponieważ wiele z nich, w tym Evince, jest naprawdę fajnych.


źródło

Odpowiedzi:

32

Możesz to zrobić za pomocą wiersza poleceń:

pdftotext filename.pdf - | tr -d '.' | wc -w
Sid
źródło
Dzięki, ale jak powiedziałem w pytaniu, wolałbym nie używać wiersza poleceń do tego typu rzeczy.
4
@Chris Spróbuj zintegrować system („<polecenie powyżej>”) z kodem evince.
Gödel,
11

Co powiesz na szybki skrypt bashowy wymagający zenity i evince. Po wywołaniu bez argumentu wyświetli się okno dialogowe umożliwiające wybranie pliku. Gdy zostanie wywołany z argumentem (lub po wspomnianym oknie dialogowym), zarówno otworzy plik w evince, jak i wyświetli okno dialogowe z liczbą słów.

Innymi słowy, skopiuj następujące elementy do pliku tekstowego, nazwanego evince-word-count.shlub podobnego, zapisz go gdzieś na swojej ścieżce (np. ~/bin/), Spraw, aby był wykonywalny (poprzez kliknięcie prawym przyciskiem myszy i właściwości Nautilusa lub za pomocą 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

Teraz kliknij prawym przyciskiem myszy plik PDF nautilus, wybierz „Otwórz za pomocą ...”, a następnie otwórz go za pomocą evince-word-count.sh. Teraz, kiedy otworzysz plik PDF, zarówno otworzy się w evince, jak i poda liczbę słów.

alternatywny tekst

frabjous
źródło
Możesz umieścić ten plik w /home/$USER/.local/share/nautilus/scripts/, dzięki czemu jest dostępny po kliknięciu prawym przyciskiem myszy w Nautilus (menadżer plików waniliowych Ubuntu).
Daniel Holm
10

Odpowiedź Olafa Leidingera na liście mailowej Evince:

Myślę, że taka funkcja jest bardziej odpowiednia dla edytorów dokumentów, ponieważ mają więcej informacji o dokumencie jako zwykły przeglądarka, a liczenie słów jest banalne. Weź przykładowy plik PDF. To, co widzisz jako tekst, może w rzeczywistości być jakimś kształtem grafiki wektorowej. Nawet jeśli tekst jest zawarty jako taki w pliku PDF, te słowa, które widzisz, mogą składać się z wielu poleceń „narysuj tekst w pozycji (y, x)” - np. W przypadku umlautów lub końca linii. Tak więc pojedyncze słowo może być liczone jako wiele słów. Dlatego uważam, że niezawodne wdrożenie takiej funkcji może być trudne. Spójrz na pdftotext, aby zobaczyć, co mam na myśli.

źródło
2
Jakikolwiek plik użyty do zdefiniowania dokumentu może być uznany za „kod źródłowy”, a Evince jest maszyną, która wykonuje kod. Niesprawiedliwe (i niemożliwe) jest poproszenie edytora kodu źródłowego (np. Edytora tekstu) o określenie wyniku działania, więc spójrzmy na wynik (tj. Renderowany obraz / tekst w Evince / poppler). Implementacja w Evince byłaby dla mnie przydatna, ponieważ „koduję” moje papiery w edytorze tekstu agnostycznym i używam Evince (poprzez Pandoc i pdflatex) do „uruchamiania” mojego źródła. Dopiero na końcu możemy być pewni, co przeszło. Rozważ skomentowany kod.
user29020
4

Nie wierzę, że jest to możliwe (technicznie możliwe, ale nie zostało zaimplementowane).

Musisz pamiętać, że Evince jest przeglądarką dokumentów, a liczba słów to funkcja wymagana zwykle w edytorze (tak, wiem, że nie zawsze tak jest).

Możesz skontaktować się z programistami Evince i zapytać, czy byliby zainteresowani wdrożeniem tej funkcji.

8128
źródło
1
Dzięki. Skontaktowałem się z nimi i utrzymam pytanie otwarte, dopóki nie otrzymam ostatecznej odpowiedzi.
Po usłyszeniu odpowiedzi możesz skutecznie odpowiedzieć na własne pytanie :)
8128,
Evince nie jest ściśle „widzem”. Tworzenie, przeglądanie i edycja dokumentu jest wyraźnie większym przepływem pracy niż tylko „edycja”, a następnie „przeglądanie”. W odniesieniu do pytania: Evince obecnie pozwala na kopiowanie zaznaczonego tekstu. To nie jest rola ściśle „widokowa”. Evince jest w doskonałej pozycji, aby dowiedzieć się, jaka jest liczba słów, ponieważ jest to ostateczny „renderer” tego, co faktycznie czytamy (lub wysyłamy do wydawcy). Ma już sposób na identyfikację renderowanych całych słów (spróbuj dwukrotnie kliknąć słowo!). Chciałbym, aby Evince podał to w polu „Plik-> Właściwości”. Mówi mi już o liczbie stron (na podstawie renderowania).
user29020