Jak mogę określić liczbę stron dokumentów odt, doc, docx i innych dokumentów biurowych z poziomu interfejsu CLI?

13

Łatwo jest znaleźć liczbę stron dokumentu PDF z wiersza poleceń:

pdfinfo sample.pdf | grep ^Pages:

... ale nie udało mi się znaleźć podobnej metody dla odtplików i innych dokumentów biurowych.

Czy istnieje sposób programowego określenia liczby stron tych dokumentów?

Glutanimate
źródło

Odpowiedzi:

10

Dzięki za wszystkie odpowiedzi, wszyscy. Z twoją pomocą udało mi się skompilować listę poleceń, które mogą wyodrębnić liczbę stron z prawie wszystkich odpowiednich dokumentów biurowych:

DOCX / PPTX

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

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

Uwaga : unzipmożna zainstalować za pomocą 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]*'

Uwaga : wvSummary(wielkość liter ma znaczenie!) Jest częścią wvpakietu. Zainstaluj za pomocą 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]*'

Uwaga: pdfinfojest częścią poppler-utilsi powinien być preinstalowany na Ubuntu.

DJVU

djvused -e "n" sample.djvu

Uwaga: djvusedjest częścią djvulibre-binpakietu i może być instalowany z sudo apt-get install djvulibre-bin.

Glutanimate
źródło
6
unzip -p document.odt meta.xml | grep -o 'page-count="[0-9]*"'

Zobacz tutaj, aby uzyskać więcej informacji .

Nykakin
źródło
Dziękuję za link! to była bardzo interesująca lektura. Przyjąłbym twoją odpowiedź, ale znalazłem kilka innych fajnych poleceń dla innych dokumentów biurowych i skompilowałem je w odpowiedzi na swoją własną. Mam nadzieję, że nie masz nic przeciwko.
Glutanimate
5

Nie znalazłem sposobu na wyodrębnienie odtinformacji o pliku tak pdfinfo, jak to robi, ale możesz utworzyć szybki skrypt do użycia pdfinfoz odtplikami, konwertując każdy plik ODT do formatu PDF, a następnie usuwając przekonwertowany plik, jeśli nie będziesz go używać:

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

Mam nadzieję, że to ci pomogło.

Lew
źródło