Piping no GraphicsMagick

0

Ainda estou aprendendo na linha de comando e estou tendo problemas para inserir uma lista de arquivos em graphicsmagick para conversão em pdf:

find . -type f | sort | gm convert file.pdf

Isso dá o erro: gm convert: Request did not return an image.

Posso fazer isso sem recorrer a métodos mais complicados?

    
por user2089518 05.04.2014 / 01:25

2 respostas

2

Essa é uma pergunta antiga, mas eu achei que procurava uma solução para o mesmo problema e nunca encontrei uma resposta completa. Eu criei uma maneira simples (-ish) de fazer isso sozinho:

gm convert $(find . -type f -printf '%p
find . -type f -printf '%p
gm convert $(find . -type f -printf '%p
find . -type f -printf '%p%pre%' | sort -z | xargs -0 -I {} gm convert -adjoin file.pdf {} file.pdf
' | sort -z | sed 's/\x00/ /g') file.pdf
' | sort -z | xargs -0 -I {} gm convert -adjoin file.pdf {} file.pdf
' | sort -z | sed 's/\x00/ /g') file.pdf

Não funcionará se houver espaços ou novas linhas em qualquer um dos caminhos dos arquivos originais.

Esse método deve executar uma conversão para cada arquivo de entrada. Leva muito (muito) mais tempo, especialmente se houver um grande número de imagens originais, mas não será prejudicado por nomes de arquivos:

%pre%     
por Cameron 23.09.2014 / 22:34
0

No manual ,

convert [ options ... ] input_file output_file

Então você precisa especificar seus arquivos ...

for i in 'find . -type f | sort'
do
  gm convert "$i" "$i".pdf
done
    
por Elliott Frisch 05.04.2014 / 01:28

Tags