web-dev-qa-db-ja.com

CLIからodt、doc、docx、およびその他のOfficeドキュメントのページ数を確認するにはどうすればよいですか?

コマンドラインからPDFドキュメントのページ数を見つけるのは簡単です:

pdfinfo sample.pdf | grep ^Pages:

...しかし、odtファイルや他のオフィス文書に対して同様の方法を見つけることができませんでした。

これらのドキュメントのページ数をプログラムで決定する方法はありますか?

12
Glutanimate

皆さん、すべての答えをありがとう。あなたの助けを借りて、ほとんどすべての関連するオフィス文書からページ数を抽出できるコマンドのリストをコンパイルすることができました。

DOCX/PPTX

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

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

unzipSudo 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]*'

注:pdfinfopoppler-utilsの一部であり、Ubuntuにプリインストールされているはずです。

DJVU

djvused -e "n" sample.djvu

注:djvuseddjvulibre-binパッケージの一部であり、Sudo apt-get install djvulibre-binとともにインストールできます。

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

詳細はこちらをご覧ください

6
Nykakin

odtのようにpdfinfoファイル情報を抽出する方法が見つかりませんでしたが、pdfinfoodtファイルと共に使用して各odtを変換する高速スクリプトを作成できますファイルをPDFに保存し、後で使用しない場合は変換したファイルを削除します。

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

これがあなたのお役に立てば幸いです。

4
Leo