コマンドラインからPDFドキュメントのページ数を見つけるのは簡単です:
pdfinfo sample.pdf | grep ^Pages:
...しかし、odt
ファイルや他のオフィス文書に対して同様の方法を見つけることができませんでした。
これらのドキュメントのページ数をプログラムで決定する方法はありますか?
皆さん、すべての答えをありがとう。あなたの助けを借りて、ほとんどすべての関連するオフィス文書からページ数を抽出できるコマンドのリストをコンパイルすることができました。
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]*'
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
とともにインストールできます。
unzip -p document.odt meta.xml | grep -o 'page-count="[0-9]*"'
odt
のようにpdfinfo
ファイル情報を抽出する方法が見つかりませんでしたが、pdfinfo
をodt
ファイルと共に使用して各odtを変換する高速スクリプトを作成できますファイルをPDFに保存し、後で使用しない場合は変換したファイルを削除します。
libreoffice --headless --invisible --convert-to pdf sample.odt
pdfinfo sample.pdf | grep ^Pages:
rm sample.pdf
これがあなたのお役に立てば幸いです。