Как определить количество страниц в документах odt, doc, docx и других офисных из CLI?


13

Найти количество страниц документа PDF легко из командной строки:

pdfinfo sample.pdf | grep ^Pages:

... но я не смог найти аналогичный метод для odtфайлов и других офисных документов.

Есть ли способ программно определить количество страниц этих документов?

Ответы:


10

Спасибо за все ответы, всем. С вашей помощью мне удалось составить список команд, которые могут извлечь количество страниц практически из всех соответствующих офисных документов:

DOCX / PPTX

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

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

Примечание : unzipможет быть установлен с 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]*'

Примечание : wvSummary(с учетом регистра!) Является частью wvпакета. Установите его с помощью 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]*'

Примечание: pdfinfoявляется частью poppler-utilsи должна быть предустановлена ​​на Ubuntu.

DJVU

djvused -e "n" sample.djvu

Примечание: djvusedявляется частью djvulibre-binпакета и может быть установлен с sudo apt-get install djvulibre-bin.


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

Смотрите здесь для получения дополнительной ссылки .


Спасибо за ссылку! это было очень интересное чтение. Я бы принял ваш ответ, но нашел несколько других изящных команд для других офисных документов и скомпилировал их в своем собственном ответе. Надеюсь, ты не против.
Glutanimate

5

Я не нашел способа извлечь odtинформацию о файле, как это pdfinfoделает, но вы можете создать быстрый скрипт для использования pdfinfoс odtфайлами, конвертируя каждый файл odt в PDF и позже удаляя преобразованный файл, если вы не собираетесь его использовать:

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

Надеюсь, что это помогло вам.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.