我有一份 100 页的 PDF 文档需要打印。我的打印店需要知道哪些页面包含颜色。我不想手动扫描。有没有可以检测带颜色的页面并输出页码的程序?
答案1
发现这个http://root42.blogspot.de/2012/10/counting-color-pages-in-pdf-files.html
gs -o - -sDEVICE=inkcov input.pdf | grep -v "^ 0.00000 0.00000 0.00000" | grep "^ " | wc -l
对我来说效果很好
总页数可以通过
pdfinfo input.pdf | grep Pages:
答案2
在 Linux(也可能是 mac/其他 Unix)上,以下非常简短的 BASH 脚本似乎可以解决问题:
#!/bin/bash
file="$1"
for page in $(identify -density 12 -format '%p ' "$file") ; do
if convert "$file[$((page-1))]" -colorspace RGB -unique-colors txt:- | sed -e 1d | egrep -q -v ': \(\s*([0-9]*),\s*\1,\s*\1' ; then
echo $page
fi
done
将脚本命名为类似于coloredpages.sh
,并使用 使其可执行chmod +x coloredpages.sh
,然后运行./coloredpages.sh "pdfname.pdf"
,它应该返回页码列表。
这需要安装 ImageMagick 和 Ghostscript。而且它不是世界上最快的东西。
抱歉,我不知道如何将其适用于 Windows(无论如何,没有 Cygwin 或类似软件)。
答案3
与 OP 有相同的任务并且在 Windows 中工作,我发现以下解决方案可以快速而有效地运行:假脱机文件页面计数器 SDK不是免费的,但评估版仍然可以使用。从上面的链接下载 zip 文件,解压并运行bin/C#_ParsingTest yourfile.pdf
。你会看到类似
Page 1 is [ BW]
Page 2 is [Color]
...
Page 143 is [Color]
============
Statistics: bwPageCount=99, colorPageCount=44
这快速 PDF 计数提到这里还有另一个答案需要安装(对于我的一次性工作——论文打印来说)是一个缺点。但是它也能完成工作并提供 GUI。安装后,运行它,将 PDF 文件拖放到其中,检查Color Pages Counting
设置/选项,然后单击Page count files in list
按钮。
有趣的是,我的论文结果相差 1 页(99/44 对比 100/43)。我相信,这是因为一些图形(我全部用 Inkscape 制作)实际上是黑白的,但在元数据中却被描述为彩色。我不确定。我在 Rapid PDF Count 中没有找到所有彩色/黑白页面的列表,所以我无法说出这种差异的确切来源。