我有一个有效的 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
。