如何从 CLI 确定 odt、doc、docx 和其他办公文档的页数?

如何从 CLI 确定 odt、doc、docx 和其他办公文档的页数?

从命令行可以轻松找到 PDF 文档的页数:

pdfinfo sample.pdf | grep ^Pages:

...但我还没有找到针对odt文件和其他办公文档的类似方法。

有没有办法以编程方式确定这些文件的页数?

答案1

谢谢大家的回答。在你们的帮助下,我能够编制一份命令列表,这些命令可以从几乎所有相关的办公文档中提取页数:

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

文件/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

光发射断层扫描

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是 Ubuntu 的一部分poppler-utils并且应该预装在 Ubuntu 上。

迪克维尤

djvused -e "n" sample.djvu

注意:djvused是软件包的一部分djvulibre-bin,可以与 一起安装sudo apt-get install djvulibre-bin

答案2

我没有找到提取odt文件信息的方法,但您可以创建一个快速脚本来与文件一起pdfinfo使用,将每个 odt 文件转换为 PDF,然后删除转换后的文件(如果您不打算使用它):pdfinfoodt

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

希望这对你有帮助。

答案3

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

更多参考请参见此处

相关内容