如何从CLI确定odt,doc,docx和其他Office文档的页数?


13

从命令行很容易找到PDF文档的页数:

pdfinfo sample.pdf | grep ^Pages:

...但是我无法找到用于odt文件和其他Office文档的类似方法。

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

Answers:


10

谢谢大家的回答。在您的帮助下,我能够编译出一系列命令,这些命令可以从几乎所有相关的Office文档中提取页数:

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-utilsUbuntu的一部分,应预装在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]*"'

请参阅此处以获取更多参考。


谢谢你的链接!这是一个非常有趣的阅读。我会接受您的回答,但是我发现了其他Office文档的其他一些漂亮命令,并将它们编译为我自己的回答。我希望你不要介意。
— 谷氨酰胺

5

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

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

希望这对您有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.