从命令行可以轻松找到 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]*'
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,然后删除转换后的文件(如果您不打算使用它):pdfinfo
odt
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]*"'