Печать нижних колонтитулов с использованием 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,

Другие вопросы по тегам