计算PDF中的黑白/彩色页


23

我有一个需要打印的100页PDF文档。需要告诉我的印刷店哪些页面包含彩色。我不想手动扫描。是否有一个程序可以检测彩色页面并输出页码?


1
操作系统?
frabjous 2011年

Answers:


25

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:

这个单行代码回答了“是否有一个程序可以检测出彩色页面并输出页码?”这个问题。 gs -o - -sDEVICE=inkcov input.pdf |tail -n +4 |sed '/^Page*/N;s/\n//'|sed -E '/Page [0-9]+ 0.00000 0.00000 0.00000 / d'
Fredrik Erlandsson

8

在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或类似软件)。


谢谢,我将在运行linux时试一试。我可能会找到更好的印刷厂来检测它。

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文件拖放到其中,签入Setup / Options,然后单击按钮。Color Pages CountingPage count files in list

有趣的是,我论文的结果相差1页(99/44与100/43)。我相信,这是因为某些图形(我使用Inkscape制作的所有图形)实际上是黑白的,但在元数据中被描述为彩色。我不确定。我在“快速PDF计数”中没有找到所有彩色/黑白页面的列表,因此我无法说出这种差异的确切来源。

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.