Письма структурной распечатки программы от дурака?

Все запаздывание несколько наклонных черт игнорируют и рассматривают как единственную наклонную черту.

Даже в запуске также больше чем 2 наклонных черты игнорируют и рассматривают как единственную наклонную черту только.

Двойная наклонная черта (//) в запуске также означает корень / каталог, но это все еще показывает Ваш CWD как // когда Вы выполняете pwd.

Следующая команда проверяет это // также корневой каталог то же как /

$~> cd /
$/> pwd
/
$/> stat -c "%i" .
2
$/> cd //
$//> pwd
//
$//> stat -c "%i" .
2

Вы видите, что inode число равняется 2 в обоих случаях следовательно, оба - те же каталоги.

16
11.09.2011, 14:28
4 ответа

Существует также Muttprint. Это действительно поддерживает UTF-8, и его вывод выглядит достойным по умолчанию. Использование Muttprint ПРОПИТЫВАЕТ ЛАТЕКСОМ, и обеспечивает рычаги для настройки.

Так как я печатаю письма от различных сред, я не могу использовать принтер по умолчанию. Таким образом я настроил его (через ~/.muttrc) для использования средства просмотра PDF, где я могу динамично выбрать принтер:

set print_command='set -e; f=`mktemp`; \
        muttprint -P A4 -p TO_FILE:"$f"; evince "$f"; rm "$f"'

Использование Mktemp /tmp, по умолчанию. Для использования пользовательского каталога кэша:

set print_command='set -e; f=`mktemp -p "$HOME"/.cache/mutt`; \
        muttprint -P A4 -p TO_FILE:"$f"; evince "$f"; rm "$f"'

Btw, можно установить print_decode внутри muttrc, чтобы настроить, если print_command может декодировать MIME, кодировка и т.д. самостоятельно. По умолчанию это установлено на yes который является правильной установкой для команд как muttprint, enscript и т.д.

Относительно проблем UTF-8 a2ps enscript и члена парламента можно только прийти к заключению, что их нужно считать устаревшими. Действительно, смотря на страницы проекта они, кажется, не сохраняются (например, последнее сообщение печати страницы члена парламента с 2002, и это упоминает список рассылки, расположенный в Sun).

19
27.01.2020, 19:48
  • 1
    Этот вывод к дефекту безопасности: /tmp/$USER.ps очень предсказуемо другими пользователями. Использовать mktemp создайте временные файлы! (См. мой ответ). –  F. Hauri 21.05.2017, 18:22
  • 2
    @F.Hauri, да, полагаясь /tmp/$USER.ps глупо. Я обновил свой ответ. –  maxschlepzig 23.05.2017, 00:47
  • 3
    mktemp перестанет работать, если файл уже будет существовать или если каталог не делает. При отказе Ваш каталог кэша заполнится нежелательными печатными письмами. Это - главная причина почему /tmp/* удален в перезагрузке. –  F. Hauri 23.05.2017, 08:53
  • 4
    @F.Hauri, mktempсмысл существования должен избежать конфликтов имени файла. Это может перестать работать по другим причинам, все же. Я изменил команду, таким образом, что muttprint только выполняется, если бы mktemp был успешен (я подозреваю, что muttprint принял бы значение по умолчанию к некоторому другому имени файла когда f пусто). Таким образом теперь Вы только заканчиваете с оставшимся временным файлом, если проявляют или сбой комнаты. Я рассматриваю это вряд ли - и если они делают я считаю сохранение проблематичного файла справкой для отладки проблемы.Конечно, /tmp автоматически очищен. Но $HOME выгодно для чувствительных документов, когда это шифруется, но /tmp не. –  maxschlepzig 25.05.2017, 19:58
  • 5
    Использовать mktemp -p $HOME/.cache/mutt-XXXXXXXXXX в этом случае, но mktemp корректный инструмент. –  F. Hauri 26.05.2017, 09:57
Вы также можете рассмотреть возможность использования [114890]paps[114891], который читает файл в кодировке UTF-8 и генерирует рендеринг файла на языке PostScript. Рендеринг осуществляется путём создания контурных кривых через бэкэнд pango ft2.[114377].
3
27.01.2020, 19:48

Вот простой рецепт, который я использую в разных UNIX:

set print_command="iconv --unicode-subst="_" -f utf-8 -t iso-8859-1 | enscript -P ••My_printer••"

где •• My_printer •• - это имя принтера.

1
27.01.2020, 19:48

Более безопасный и использующий меньше бумаги, создайте обертку :

Вот моя команда печати для .muttrc:

set print_command="$HOME/bin/print_preview-wrapper.sh"

И там является содержимым "$HOME/bin/print_preview-wrapper.sh"

#!/bin/bash

read tmpdir < <(mktemp -d /tmp/print_preview-$USER-XXXXXXXX)
cd $tmpdir || exit 1

trap "cd && rm -fR $tmpdir;exit" 0 1 2 3 6 9 15

cat >file.eml
muttprint -P A4 -p TO_FILE:file.ps <file.eml 

read numPages < <(sed '/^%%Pages/{s/%%Pages: //;q;};d' file.ps)
(( numPages > 1 )) &&
    muttprint -2 -P A4 -p TO_FILE:file.ps <file.eml 

gv file.ps

Это позволит

  • безопасно создать временный каталог для хранения текущей печатной почты,
  • преобразовать их в постскриптум, но
    • если страниц больше 1,
    • конвертировать заново, но по 2 страницы за листом.
  • запустите gv, потому что мне это нравится, но вы можете запустить любой другой инструмент.
  • удалить временный каталог при выходе.
3
27.01.2020, 19:48

Теги

Похожие вопросы