Comment compter les pages dans plusieurs fichiers PDF?

12

Je viens de recevoir un manuel pdf comprenant une vingtaine de fichiers PDF séparés (par chapitre) avec des noms quasi-réguliers. Existe-t-il un moyen de compter les pages du livre sans ouvrir chaque fichier (ou parcourir les propriétés)?

[la solution peut être pour Windows ou Ubuntu]

ysap
la source
Avez-vous Adobe Acrobat?
wizlog
Voulez-vous le nombre de pages pour chaque fichier PDF et / ou le livre entier?
Franck Dernoncourt
@FranckDernoncourt - merci. La question a été posée il y a environ 7 ans. Si vous avez une solution pour l'une ou l'autre des façons que vous avez mentionnées, pourquoi n'ajouterez-vous pas simplement une réponse ici, afin que les futurs utilisateurs qui recherchent ce problème puissent s'y référer?
ysap

Réponses:

19

pdfinfoCette utilisation est la meilleure que j'ai pu trouver: Pour imprimer le nombre de pages par fichier:

for i in *.pdf; do echo $i && pdfinfo "$i" | grep "^Pages:"; done

Pour imprimer la somme de toutes les pages de tous les fichiers:

for i in *.pdf; do pdfinfo "$i" | grep "^Pages:"; done | awk '{s+=$2} END {print s}'

Sur Ubuntu, pdfinfoest contenu dans le package poppler-utils. Pour l'installer, utilisez:

sudo apt-get install poppler-utils

Sous Windows, vous pouvez utiliser cygwin. pdfinfoest contenu dans le paquet poppler.

Der Hochstapler
la source
+1 pdfinfo est exactement ce que je cherchais. J'en ai besoin pour le nombre de pages dans mon package d'émulation d'impression recto verso.
Joe
J'ai dû ajouter l'indicateur --text à la commande grep, car pour une raison quelconque, pdfinfo a renvoyé quelque chose que grep a interprété comme un fichier binaire. Donc, grep --text "^ Pages:", juste au cas où quelqu'un d'autre aurait le même problème.
KIAaze
4

Je sais que c'est trop tard, mais je viens de trouver une solution bien meilleure et plus simple pour cela.

Téléchargez et installez à partir de sourceforge "pdf split and merge"

Déposez tous vos fichiers dessus et, à l'écran, il génère un rapport semblable à une feuille de calcul sur le nombre de pages et les informations de chacun.

Sélectionnez cela, copiez, collez dans Excel ou opencalc, vous l'avez.

user339697
la source
4

J'ai fait une application juste pour cela, elle est écrite en Java et fonctionne donc sur tous les OS. Vérifiez le ici:

https://github.com/hamiltino/multiple-pdf-counter/releases

Il est préférable d'exécuter l'application à partir de terminal ( java -jar) pour vous assurer qu'elle fonctionnera correctement.

Placez le fichier jar dans le répertoire dans lequel vous souhaitez obtenir le nombre de pages de tous les fichiers PDF. Il parcourra également les sous-dossiers, pas besoin de placer tous les fichiers PDF où se trouve le fichier jar car il parcourra les sous-dossiers où vous placez le fichier fichier jar. Double-cliquez sur le fichier jar, cela peut prendre un certain temps s'il y a beaucoup de fichiers PDF, il finira par produire un fichier txt dans le même répertoire du fichier jar, et il comptera les pages.

HashTables
la source
Bonne idée. Les bonnes améliorations seraient: 1) ouvert uniquement en ligne de commande (pas d'interface utilisateur), et 2) afficher la taille de la page de chaque fichier, ainsi que le total
raider33
1

Dans Adobe Acrobat Pro, accédez à fichier > créer un fichier PDF > fusionner des fichiers en un seul PDF . Ajoutez ensuite des fichiers et sélectionnez les fichiers souhaités. Cliquez sur combiner et voyez combien de pages se trouvent dans le PDF final.

wizlog
la source
Merci @wizlog - cela nécessite vraiment le logiciel complet (et cher), n'est-ce pas?
ysap
Je viens de remarquer votre commentaire sur la question. Non, je ne l'ai pas.
ysap
1

Salut, je ne sais pas comment vous pouvez le faire sur Windows, mais sur Linux Bash, cela devrait fonctionner avec cela

PDFS = `ls * .pdf`
compteur = 0
pour i en $ PDFS
faire
   ((compteur + = `pdfinfo internship_report.pdf | sed -n's | Pages: [^ 0-9] * \ ([0-9] * \). * | \ 1 | p'`)))
terminé
echo $ counter

meilleurs salutations kenny

phschoen
la source
Merci, Kenny. Cela peut fonctionner si le nom de fichier doit parcourir les fichiers. Ont tout de même voté.
ysap
0

une autre approche avec parallelet expr(devrait être un peu plus rapide sur les machines multiprocesseurs):

expr $( echo -n 0; parallel "pdfinfo {} |sed -n 's/Pages: */ + /p'" ::: *pdf|tr '\n' ' ')
Matteo Gamboz
la source