Obtenir le nombre de mots d'un document pdf dans Evince

22

Existe-t-il un moyen d'obtenir le nombre de mots d'un document PDF que je consulte dans Evince, la visionneuse PDF par défaut d'Ubuntu? Je suis capable de convertir les documents en fichiers texte et d'obtenir le nombre de mots du terminal, mais j'aimerais bien pouvoir y accéder rapidement sans avoir à utiliser le terminal. Y a-t-il un plugin qui peut le faire, ou est-il déjà intégré et je le manque juste?

PS Je préférerais ne pas changer ma visionneuse car Evince est la visionneuse PDF par défaut dans Ubuntu, et j'aimerais bien faire autant que possible en utilisant les applications par défaut car beaucoup d'entre elles, Evince inclus, sont vraiment sympas.


la source

Réponses:

32

Vous pouvez le faire via la ligne de commande:

pdftotext filename.pdf - | tr -d '.' | wc -w
Sid
la source
Merci, mais comme je l'ai dit dans la question, je préfère ne pas avoir à utiliser la ligne de commande pour ce genre de chose.
4
@Chris Essayez alors d'intégrer le système ("<commande ci-dessus>") dans le code evince.
Gödel
11

Que diriez-vous d'un script bash rapide nécessitant la zénité et l' évidence . Lorsqu'il est appelé sans argument, il vous donnera une boîte de dialogue afin que vous puissiez choisir un fichier. Lorsqu'il est appelé avec un argument (ou après ladite boîte de dialogue), il ouvrira le fichier dans evince et vous donnera une boîte de dialogue avec un nombre de mots.

En d'autres termes, copiez ce qui suit dans un fichier texte, appelé evince-word-count.shou quelque chose, enregistrez-le quelque part sur votre chemin (par exemple, ~/bin/), rendez-le exécutable (soit via le clic droit et les propriétés de Nautilus, soit avec 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

Maintenant, faites un clic droit sur certains fichiers PDF dans nautilus, choisissez "Ouvrir avec ..." puis faites-le ouvrir avec evince-word-count.sh. Maintenant, lorsque vous ouvrez un PDF, il s'ouvre à la fois dans evince et vous donne un nombre de mots.

texte alternatif

frabjous
la source
Vous pouvez placer ce fichier dans /home/$USER/.local/share/nautilus/scripts/ qui le rend accessible par un clic droit dans Nautilus (gestionnaire de fichiers vanille Ubuntu).
Daniel Holm
10

Une réponse d'Olaf Leidinger sur la liste de diffusion Evince:

Je pense qu'une telle fonctionnalité est mieux adaptée aux éditeurs de documents, car ils ont plus d'informations sur le document en tant que simple visualiseur et le comptage des mots est trivial. Prenez un fichier PDF comme exemple. Ce que vous voyez comme du texte peut en fait être une sorte de forme graphique vectorielle. Même si le texte est contenu en tant que tel dans le fichier PDF, ces mots que vous voyez peuvent être composés de plusieurs commandes "dessiner du texte à la position (y, x)" - par exemple en cas de trémas ou de fin de ligne. Un seul mot peut donc compter comme plusieurs mots. Par conséquent, je pense qu'il pourrait être difficile de mettre en œuvre une telle fonctionnalité de manière fiable. Jetez un oeil à pdftotext pour voir ce que je veux dire.

la source
2
Tout fichier utilisé pour définir le document peut être considéré comme du "code source", et Evince est la machine qui exécute le code. Il est injuste (et impossible) de demander à l'éditeur de code source (par exemple un éditeur de texte) de déterminer quelle sera la sortie de l'exécution, alors regardons simplement la sortie (c'est-à-dire l'image / le texte rendu dans Evince / poppler). L'implémentation dans Evince me serait utile car je "code" mes articles dans un éditeur de texte indépendant de la langue et j'utilise Evince (via Pandoc et pdflatex) pour "exécuter" ma source. Ce n'est qu'à la fin que nous pouvons être certains de ce qui a réussi. Considérez le code commenté.
user29020
4

Je ne pense pas que ce soit possible (enfin, c'est techniquement possible mais n'a pas été implémenté).

Vous devez vous rappeler qu'Evince est un visualiseur de documents et que le nombre de mots est une fonctionnalité plus généralement requise dans un éditeur (oui je sais que ce n'est pas toujours le cas).

Vous voudrez peut-être contacter les développeurs d'Evince et leur demander s'ils seraient intéressés à implémenter cette fonctionnalité.

8128
la source
1
Merci. Je les ai contactés et je garderai la question ouverte jusqu'à ce que j'obtienne une réponse définitive.
Lorsque vous entendrez parler, n'hésitez pas à répondre efficacement à votre propre question :)
8128
Evince n'est pas strictement un "téléspectateur". La création, la visualisation et la modification d'un document représentent clairement un flux de travail plus important que la simple "modification" puis la "visualisation". Concernant la question: Evince permet actuellement de copier du texte sélectionné. Ce n'est pas strictement un rôle de "visualisation". Evince est très bien placé pour découvrir le nombre de mots qui en résulte, car il s'agit du "rendu" final de ce que nous lisons (ou envoyons à l'éditeur). Il a déjà un moyen d'identifier les mots entiers rendus (essayez de double-cliquer sur un mot!). J'adorerais qu'Evince fournisse ceci dans la boîte "Fichier-> Propriétés". Il me dit déjà le nombre de pages (basé sur le rendu).
user29020