如何从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]*'

注意:pdfinfopoppler-utilsUbuntu的一部分,应预装在Ubuntu上。

DJVU

djvused -e "n" sample.djvu

注意:djvuseddjvulibre-bin包装的一部分,可能与一起安装sudo apt-get install djvulibre-bin


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

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


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

5

我没有找到一种提取odt文件信息的方法pdfinfo,但是您可以创建一个快速脚本来pdfinfoodt文件一起使用,将每个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.