Comment puis-je déterminer le nombre de pages d'odt, doc, docx et d'autres documents bureautiques à partir de la CLI?

13

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 pu trouver une méthode similaire pour les odtfichiers et autres documents de bureau.

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

Glutanimate
la source

Réponses:

10

Merci pour toutes les réponses, tout le monde. Avec votre aide, j'ai pu compiler une liste de commandes qui peuvent 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 : unzippeut ê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 wvpackage. 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: pdfinfofait partie de poppler-utilset devrait être préinstallé sur Ubuntu.

DJVU

djvused -e "n" sample.djvu

Remarque: djvusedfait partie du djvulibre-binpackage et peut être installé avec sudo apt-get install djvulibre-bin.

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

Voir ici pour plus de référence .

Nykakin
la source
Merci pour le lien! c'était une lecture très intéressante. J'aurais accepté votre réponse mais j'ai trouvé quelques autres commandes astucieuses pour d'autres documents de bureau et les ai compilés dans une réponse à moi. J'espère que ça ne vous dérange pas.
Glutanimate
5

Je n'ai pas trouvé de moyen d'extraire odtles informations sur les fichiers pdfinfo, mais vous pouvez créer un script rapide à utiliser pdfinfoavec les odtfichiers, convertir chaque fichier odt en PDF et supprimer plus tard le fichier converti si vous ne comptez 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é.

Leo
la source