Печать нижних колонтитулов с использованием enscript
У меня есть рабочий скрипт bash, который преобразует текстовые файлы в postscript, используя enscript 1.6.5.90-2 на Kubuntu 14.04.
Он делает несколько других вещей, чтобы вывод выглядел лучше, например, установка полей, перенос строк и т. Д. (Вот почему мне нужен enscript вместо других более простых инструментов печати).
В настоящее время скрипт печатает заголовок в заголовке страницы, но теперь мне тоже нужен нижний колонтитул.
Кто-нибудь может показать мне текущий рабочий пример с использованием enscript для создания строк нижнего колонтитула?
Я вижу --footer=FOOTER на странице руководства, но я также вижу, что высота нижнего колонтитула по умолчанию равна нулю. Я пробовал несколько способов заставить нижние колонтитулы напечатать. Ни один из них не выдает никаких сообщений об ошибках, но они также не печатают нижние колонтитулы.
У меня нет места для всего, что я хочу видеть в заголовке, поэтому мне нужно поместить часть этого в нижний колонтитул.
1 ответ
Я считаю, что если вы хотите нижние колонтитулы, вы должны написать собственный файл HDR, а затем выберите его с помощью --fancy-header
вариант. Я написал один (ниже), который может работать для вас.
Существует 9-летний отчет об ошибке по этой проблеме. Подход в этом отчете об ошибках пытается найти более полное решение и требует повторной компиляции 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
,