Glu*_*ate 14 command-line pdf libreoffice microsoft-office djvu
从命令行很容易找到 PDF 文档的页数:
pdfinfo sample.pdf | grep ^Pages:
Run Code Online (Sandbox Code Playgroud)
...但我一直无法找到类似的odt文件和其他办公文件的方法。
有没有办法以编程方式确定这些文档的页数?
Glu*_*ate 12
谢谢大家的回答。在您的帮助下,我能够编译一个命令列表,这些命令可以从几乎所有相关的办公文档中提取页数:
文档/PPTX
unzip -p 'sample.docx' docProps/app.xml | grep -oP '(?<=\<Pages\>).*(?=\</Pages\>)'
unzip -p 'sample.pptx' docProps/app.xml | grep -oP '(?<=\<Slides\>).*(?=\</Slides\>)'
Run Code Online (Sandbox Code Playgroud)
注意: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]*'
Run Code Online (Sandbox Code Playgroud)
注意:(wvSummary区分大小写!)是wv包的一部分。安装它sudo apt-get install wv。
ODT
unzip -p sample.odt meta.xml | grep -oP '(?<=page-count=")[ A-Za-z0-9]*'
Run Code Online (Sandbox Code Playgroud)
pdfinfo sample.pdf | grep -oP '(?<=Pages: )[ A-Za-z0-9]*'
Run Code Online (Sandbox Code Playgroud)
注意:pdfinfo是poppler-utilsUbuntu 的一部分并且应该预装在 Ubuntu 上。
DJVU
djvused -e "n" sample.djvu
Run Code Online (Sandbox Code Playgroud)
注意:djvused是djvulibre-bin软件包的一部分,可以使用sudo apt-get install djvulibre-bin.
我没有找到一种方法来提取odt文件信息pdfinfo,但是您可以创建一个快速脚本来使用pdfinfo这些odt文件,将每个 odt 文件转换为 PDF,如果您不打算使用它,则稍后删除转换后的文件:
libreoffice --headless --invisible --convert-to pdf sample.odt
pdfinfo sample.pdf | grep ^Pages:
rm sample.pdf
Run Code Online (Sandbox Code Playgroud)
希望这对你有帮助。
unzip -p document.odt meta.xml | grep -o 'page-count="[0-9]*"'
Run Code Online (Sandbox Code Playgroud)