Imprimindo rodapés usando o enscript

2

Eu tenho um script bash de trabalho que converte arquivos de texto em postscript usando o enscript 1.6.5.90-2 no Kubuntu 14.04.

Ele faz várias outras coisas para fazer a saída parecer melhor como definir margens, linhas de quebra automática, etc. (é por isso que eu preciso de enscript em vez de outras ferramentas de impressão mais simples.)

O script atualmente imprime um título no cabeçalho da página, mas agora também preciso de um rodapé.

Alguém pode me mostrar um exemplo atual de trabalho usando o enscript para produzir linhas de rodapé?

Eu vejo --footer = FOOTER na página man, mas também vejo que a altura do rodapé padrão é zero ponto. Eu tentei várias maneiras de imprimir rodapés. Nenhum deles produz mensagens de erro, mas também não imprimem rodapés.

Não tenho espaço para tudo o que quero ver no cabeçalho sozinho, por isso preciso de colocar um pouco no rodapé.

    
por Joe 02.11.2014 / 07:13

1 resposta

2

Eu acredito que, se você quer rodapés, você tem que escrever um arquivo hdr customizado e então selecioná-lo com a opção --fancy-header . Eu escrevi um (abaixo) que pode funcionar para você.

Existe um relatório de erros de nove anos sobre este problema. A abordagem nesse relatório de erros tenta uma solução mais abrangente e requer a recompilação de enscript . Minha abordagem não é tão abrangente, mas elimina a necessidade de uma recompilação.

Este arquivo de cabeçalho é baseado em simple.hdr . Para usá-lo, copie e cole-o em um arquivo chamado, digamos, simple2.hdr e, para uso em todo o sistema, coloque-o no diretório /usr/share/enscript . Para uso pessoal, pode ser colocado no diretório ~/.enscript/ :

% -- code follows this line --
%Format: fmodstr    $D{%a %b %d %H:%M:%S %Y}
%Format: pagenumstr $V$%

%HeaderHeight: 38
%FooterHeight: 15

/do_header {   % print default simple header

  % Footer
  gsave
    d_footer_x d_footer_y HFpt_h 3 div add translate
    HF setfont

    user_footer_p {
      d_footer_x  d_footer_y moveto user_footer_left_str show

      d_footer_w user_footer_center_str stringwidth pop sub 2 div
      0 moveto user_footer_center_str show

      d_footer_x d_footer_w add user_footer_right_str stringwidth pop sub
      d_footer_y moveto user_footer_right_str show
    } if
  grestore

  % Header
  gsave
    d_header_x d_header_y HFpt_h 3 div add translate
    HF setfont

    user_header_p {
      5 0 moveto user_header_left_str show

      d_header_w user_header_center_str stringwidth pop sub 2 div
      0 moveto user_header_center_str show

      d_header_w user_header_right_str stringwidth pop sub 5 sub
      0 moveto user_header_right_str show
    } {
      5 0 moveto fname show
      45 0 rmoveto fmodstr show
      45 0 rmoveto pagenumstr show
    } ifelse
  grestore

} def

O uso é bem simples. Você pode invocá-lo com algo como:

enscript --fancy-header=simple2 --header="HEADER" --footer="LEFT|CTR|RIGHT"

Observe que, embora enscript suporte muitos conjuntos de caracteres, ele não suporta UTF-8. Os arquivos que não estão em um conjunto de caracteres suportado nativamente podem ser filtrados por iconv antes de serem passados para enscript .

    
por John1024 02.11.2014 / 08:53