Combinando enscript, find, iconv e ps2pdf

0

Estou tentando escrever um pequeno script que converterá arquivos de origem em um diretório para um .pdf. Os passos são estes

  • Localizar arquivos com o find
  • executa o iconv nos arquivos convertendo a codificação de caracteres de utf-8 para iso-8859-1 via find -exec
  • passa essa saída pelo enscript e, por fim, ps2pdf

A única razão pela qual eu adicionei iconv é que o enscript não suporta utf-8. Até agora eu fiz a seguinte bagunça:

#!/bin/bash
enscript --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' 'find $1 -name '*.java' -type f -exec iconv -f utf-8 -t iso-8859-1 {} +' | ps2pdf - "$2"'.pdf'

Em execução, forneça esta saída: enscript: invalid option - ',' Tente 'enscript --help' para mais informações.

Editar: Não deu esse erro antes de adicionar -exec iconv.
2. editar: A formulação original que fiz foi vaga, vejo agora. Aqui está o script original que eu tentei modificar:

#!/bin/bash
'which enscript' --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' 'find $1'/src/' -name '*.java'' | ps2pdf - "$2"'.pdf'

./ script.sh target_dir output_file_name

O script original combina todos os arquivos de origem em uma pasta recursivamente em um único pdf com cada arquivo iniciando em uma nova página. Talvez eu tenha que viver com isso em duas etapas. Primeiro convertendo o charset e depois convertendo para pdf.

    
por ndx 25.02.2017 / 23:34

1 resposta

0

Crie um script java2ps para facilitar o manuseio de parâmetros

#!/bin/bash

export ENSCRIPT="
--portrait
--columns=1
--font=Courier8
--highlight=java
--color
--line-numbers
--output=-
"

iconv -f utf-8 -t iso-8859-1 "$1" \
| enscript --header=' $n|'"$1"'|%F  Page $% of $='

Agora, a execução é simples

find -name '*.java' -type f -exec ~/java2ps {} \; | ps2pdf - > all.pdf
    
por 26.02.2017 / 12:36