Obtenha uma lista separada por vírgulas de páginas coloridas em PDF

0

Como obtenho uma lista separada por vírgulas de todas as páginas coloridas no meu arquivo PDF?

Graças a esta resposta , posso obter uma lista de todos os números de página e uma nota para uma página a cores.

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

A saída seria:

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

Como modifico a saída para retornar apenas as páginas com cor em uma lista separada por vírgula?

O resultado deve ser algo assim:

1, 3, 4
    
por wittich 25.10.2016 / 08:52

1 resposta

0

Ok, eu acho uma maneira de gerar uma lista separada por vírgulas das páginas coloridas em um 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'

Provavelmente não é a maneira mais elegante, mas funciona.

O código faz o seguinte:

  • leva a mesma saída como na pergunta acima e substitui as novas linhas por uma vírgula

    paste -sd,
    
  • do que procurar números entre 1-999 seguidos por uma vírgula (a nova linha repaleada) e um espaço vazio, já que a nota colorida sempre começa com um sinal de espaço vazio

    grep -Eo '[0-9]{1,3}, ''
    
  • no final, remove-se novamente as novas linhas da saída.

    tr -d '\n'
    
  • O resultado seria:

    1, 3, 4,

por 25.10.2016 / 09:22