如何计算多个PDF文件中的页面?


12

我刚收到一份pdf教科书,其中包括大约20个单独的pdf(按章),并带有准常规名称。有没有一种方法可以在不打开每个文件(或不检查属性)的情况下计算本书中的页数?

[解决方案可以用于Windows或Ubuntu]


您有Adobe Acrobat吗?
wizlog 2012年

您要每个PDF文件和/或整本书的页数吗?
弗朗克·德农古尔

@FranckDernoncourt-谢谢。这个问题是大约7年前提出的。如果您对上述两种方法都有解决方案,为什么不在此处添加答案,以便将来研究此问题的用户可以参考?
ysap

Answers:


19

使用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


+1 pdfinfo正是我想要的。在双面打印仿真程序包中,我需要它来计算页数。
2013年

我必须在grep命令中添加--text标志,因为pdfinfo由于某种原因返回了grep解释为二进制文件的内容。因此,grep --text“ ^ Pages:”,以防万一其他人遇到相同的问题。
KIAaze

4

我知道为时已晚,但是我刚刚找到了一种更好,更简单的解决方案。

从sourceforge下载并安装“ pdf split and merge”

将所有文件放到上面,然后在屏幕上生成类似电子表格的报告,其中包含每页的页数和信息。

选择它,复制,粘贴到excel或opencalc中,就可以了。


4

我为此专门制作了一个应用程序,它是用Java编写的,因此可以在所有os上使用。在这里查看:

https://github.com/hamiltino/multiple-pdf-counter/releases

最好从终端(java -jar)运行该应用程序,以确保其正常运行。

将jar文件放在您想要获取所有pdf的页数的目录中。它也会在子文件夹中循环,而无需将所有pdf放在jar文件所在的位置,因为它将在子文件夹中循环通过。 jar文件。双击罐子,如果有很多pdf,可能要花一些时间,最终将在罐子文件的同一目录中输出一个txt文件,并且其中的页数为零。


好主意。良好的增强功能将是:1)仅通过命令行打开(没有UI),以及2)输出每个文件的页面大小以及总计
raider33

1

在Adobe Acrobat Pro中,转到文件 > 创建PDF > 将文件合并到一个PDF中。然后添加文件并选择所需的文件。单击合并,然后查看最终PDF中有多少页。


感谢@wizlog-这确实需要功能齐全(且价格昂贵)的软件,不是吗?
ysap 2012年

刚刚注意到您对这个问题的评论。不,我没有。
ysap 2012年

1

嗨,您不知道如何在Windows上执行此操作,但在Linux bash上应该可以使用此功能

PDFS =`ls * .pdf`
计数器= 0
对于$ PDFS中的i
做
   (((counter + =`pdfinfo internship_report.pdf | sed -n's | Pages:[^ 0-9] * \([0-9] * \)。* | \ 1 | p'))
做完了
回声$计数器

最好的护卫肯尼


谢谢,肯尼。如果文件名可以扫描文件,这可能会起作用。无论如何都支持。
ysap 2012年

0

用另一种方法parallelexpr(应该是多处理器机器上快一点):

expr $( echo -n 0; parallel "pdfinfo {} |sed -n 's/Pages: */ + /p'" ::: *pdf|tr '\n' ' ')
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.