我刚收到一本 pdf 教科书,其中包含大约 20 个单独的 pdf(按章节),名称类似常规名称。有没有办法计算书中的页数,而无需打开每个文件(或查看属性)?
[解决方案可适用于 Windows 或 Ubuntu]
答案1
这是我能想到的最好的办法pdfinfo
:打印每个文件的页数:
for i in *.pdf; do echo $i && pdfinfo "$i" | grep "^Pages:"; done
要打印所有文件的所有页面的总和:
for i in *.pdf; do pdfinfo "$i" | grep "^Pages:"; done | awk '{s+=$2} END {print s}'
在 Ubuntu 上,pdfinfo
包含在软件包中poppler-utils
。要安装它,请使用:
sudo apt-get install poppler-utils
在 Windows 上,您可以使用 cygwin。pdfinfo
包含在包中poppler
。
答案2
我知道已经太晚了,但我刚刚找到了一种更好更简单的解决方案。
从 sourceforge 下载并安装“pdf split and merge”
将所有文件放入其中,它会在屏幕上生成一个类似电子表格的报告,其中包含每页的数量和信息。
选择它,复制,粘贴到 excel 或 opencalc 中,就完成了。
答案3
我专门为此制作了一个应用程序,它是用 Java 编写的,因此可以在所有操作系统上运行。请在此处查看:
https://github.com/hamiltino/multiple-pdf-counter/releases
最好从终端(java -jar
)运行该应用程序以确保它正常工作。
将 jar 文件放入您想要获取所有 pdf 的页数的目录中。它也会循环遍历子文件夹,无需将所有 pdf 放在 jar 文件所在的位置,因为它会循环遍历您放置 jar 文件的子文件夹。双击 jar,如果有很多 pdf,可能需要一些时间,它最终会在 jar 文件的同一目录中输出一个 txt 文件,其中包含页数。
答案4
你好,不知道如何在 Windows 上做到这一点,但在 Linux Bash 上应该可以使用这个
PDFS=`ls *.pdf` 计数器=0 对于 $PDFS 中的我 做 (( counter += `pdfinfo internship_report.pdf | sed -n 's|Pages:[^0-9]*\([0-9]*\).*|\1|p'`)) 完毕 回显 $counter
谨致问候肯尼