获取 PDF 中以逗号分隔的彩色页面列表

获取 PDF 中以逗号分隔的彩色页面列表

如何获取 PDF 文件中所有彩色页面的逗号分隔列表?

谢谢这个答案我可以获得所有页码的列表以及彩色页面的注释。

gs -o - -sDEVICE=inkcov input.pdf | grep -v "^ 0.00000  0.00000  0.00000" | \
   grep "^ \|^Page"

输出结果为:

Page 1
 0.16646  0.16261  0.14122  0.13507 CMYK OK
Page 2
Page 3
 0.48488  0.48728  0.48794  0.16678 CMYK OK
Page 4
 0.47346  0.47703  0.47624  0.46490 CMYK OK
Page 5

如何修改输出以仅返回以逗号分隔的列表中带有颜色的页面?

结果看起来应该是这样的:

1, 3, 4

答案1

好的,我找到了一种方法来生成 PDF 中彩色页面的逗号分隔列表:

gs -o - -sDEVICE=inkcov test.pdf | \
  grep -v "^ 0.00000  0.00000  0.00000" | \
  grep "^ \|^Page" | \
  paste -sd, | \
  grep -Eo '[0-9]{1,3}, ' | \
  tr -d '\n'

这可能不是最优雅的方式,但它确实有效。

该代码执行以下操作:

  • 采用与上述问题相同的输出,并用逗号替换新行

    paste -sd,
    
  • 然后它会寻找 1-999 之间的数字,后面跟着一个逗号(替换的新行)和一个空格,因为彩色注释总是以空格符号开头

    grep -Eo '[0-9]{1,3}, '`
    
  • 最后,它会从输出中再次删除新行。

    tr -d '\n'
    
  • 结果是:

    1, 3, 4,

相关内容