使用 enscript 打印页脚

使用 enscript 打印页脚

我有一个有效的 bash 脚本,它使用 Kubuntu 14.04 上的 enscript 1.6.5.90-2 将文本文件转换为 postscript。

它还可以做其他一些事情来使输出看起来更好,例如设置边距、换行等(这就是为什么我需要 enscript 而不是其他更简单的打印工具。)

该脚本当前在页眉中打印标题,但现在我还需要一个页脚。

有人能给我看一下当前的工作示例使用 enscript 来制作页脚线?

我在手册页中看到了 --footer=FOOTER,但我还看到默认页脚高度为零点。我尝试了多种方法来打印页脚。这些方法都没有产生任何错误消息,但它们也不会打印页脚。

我没有足够的空间在页眉中显示我想要看到的所有内容,因此我需要将其中一些内容放在页脚中。

答案1

我认为,如果您想要页脚,您必须编写自定义 hdr 文件,然后使用选项选择它--fancy-header。我编写了一个(如下)可能对您有用。

有一个九年前的错误报告这个问题。该错误报告中的方法尝试了更全面的解决方案,并且需要重新编译enscript。我的方法没有那么全面,但消除了重新编译的需要。

此头文件基于simple.hdr。要使用它,请将其复制并粘贴到名为 的文件中,然后simple2.hdr,对于系统范围的使用,请将其放在目录中/usr/share/enscript。对于个人使用,可以将其放在~/.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

使用方法非常简单。你可以使用以下命令来调用它:

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

请注意,虽然它enscript支持许多字符集,但不支持 UTF-8。不属于本机支持的字符集的文件可以iconv先进行筛选,然后再传递给enscript

相关内容