web-dev-qa-db-fra.com

Comment déterminer le nombre de pages des documents odt, doc, docx et autres à partir de la CLI?

Il est facile de trouver le nombre de pages d'un document PDF à partir de la ligne de commande:

pdfinfo sample.pdf | grep ^Pages:

... mais je n'ai pas trouvé de méthode similaire pour les fichiers odt et les autres documents bureautiques.

Existe-t-il un moyen de déterminer par programme le nombre de pages de ces documents?

12
Glutanimate

Merci pour toutes les réponses, tout le monde. Avec votre aide, j'ai pu compiler une liste de commandes permettant d'extraire le nombre de pages de presque tous les documents bureautiques pertinents:

DOCX/PPTX

unzip -p 'sample.docx' docProps/app.xml | grep -oP '(?<=\<Pages\>).*(?=\</Pages\>)'

unzip -p 'sample.pptx' docProps/app.xml | grep -oP '(?<=\<Slides\>).*(?=\</Slides\>)'

Remarque : unzip peut être installé avec Sudo apt-get install unzip.

DOC/PPT

wvSummary sample.doc | grep -oP '(?<=of Pages = )[ A-Za-z0-9]*'

wvSummary sample.ppt | grep -oP '(?<=of Slides = )[ A-Za-z0-9]*'

Remarque : wvSummary (sensible à la casse!) Fait partie du package wv. Installez-le avec Sudo apt-get install wv.

ODT

unzip -p sample.odt meta.xml | grep -oP '(?<=page-count=")[ A-Za-z0-9]*'

PDF

pdfinfo sample.pdf | grep -oP '(?<=Pages:          )[ A-Za-z0-9]*'

Remarque: pdfinfo fait partie de poppler-utils et devrait être préinstallé sur Ubuntu.

DJVU

djvused -e "n" sample.djvu

Remarque: djvused fait partie du package djvulibre-bin et peut être installé avec Sudo apt-get install djvulibre-bin.

9
Glutanimate
unzip -p document.odt meta.xml | grep -o 'page-count="[0-9]*"'

Voir ici pour plus de références .

6
Nykakin

Je n'ai pas trouvé de moyen d'extraire les informations de fichier odt comme le fait pdfinfo, mais vous pouvez créer un script rapide pour utiliser pdfinfo avec les fichiers odt, en convertissant chaque odt fichier en PDF et en supprimant ultérieurement le fichier converti si vous n’allez pas l’utiliser:

libreoffice --headless --invisible --convert-to pdf sample.odt
pdfinfo sample.pdf | grep ^Pages:
rm sample.pdf

J'espère que cela vous a aidé.

4
Leo