web-dev-qa-db-fra.com

Impression des pieds de page avec Enscript

J'ai un script de travail bash qui convertit les fichiers texte en postscript à l'aide de l'enscript 1.6.5.90-2 sur Kubuntu 14.04.

Plusieurs autres choses améliorent l'aspect de la sortie, telles que la définition de marges, le contour des lignes, etc. (c'est pourquoi j'ai besoin de Enscript au lieu d'outils d'impression plus simples.)

Le script affiche actuellement un titre dans l'en-tête de la page, mais maintenant, j'ai également besoin d'un pied de page.

Est-ce que n'importe qui peut me montrer un courant exemple de travail utilisant enscript pour produire des lignes de pied de page?

Je vois --footer = FOOTER dans la page de manuel, mais je vois aussi que la hauteur par défaut du pied de page est de zéro point. J'ai essayé plusieurs façons de faire imprimer des pieds de page. Aucun d'entre eux ne génère de message d'erreur, mais ils n'impriment pas non plus les pieds de page.

Je n'ai pas de place pour tout ce que je veux voir dans l'en-tête seul, alors je dois en mettre une partie dans le pied de page.

2
Joe

Je crois que si vous voulez des pieds de page, vous devez écrire un fichier hdr personnalisé, puis le sélectionner avec l'option --fancy-header. J'ai écrit un (ci-dessous) qui peut fonctionner pour vous.

Il y a un rapport de bogue vieux de neuf ans sur ce problème. L'approche de ce rapport de bogue tente une solution plus complète et nécessite de recompiler enscript. Mon approche n'est pas aussi complète mais élimine le besoin d'une nouvelle compilation.

Ce fichier d'en-tête est basé sur simple.hdr. Pour l'utiliser, copiez-le et collez-le dans un fichier nommé, par exemple, simple2.hdr, puis, pour une utilisation à l'échelle du système, placez-le dans le répertoire /usr/share/enscript. Pour une utilisation personnelle, il peut être placé dans le répertoire ~/.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

L'utilisation est assez simple. Vous pouvez ensuite l'invoquer avec quelque chose comme:

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

Notez que, bien que enscript prenne en charge de nombreux jeux de caractères, il ne prend pas en charge UTF-8. Les fichiers qui ne font pas partie d'un jeu de caractères pris en charge de manière native peuvent être filtrés via iconv avant de les transmettre à enscript.

2
John1024