[unix] 똥에서 예쁜 메일을 인쇄?

나는 다음을 통해 Mutt에서 인쇄 명령을 구성 할 수 있음을 알고 있습니다 .muttrc.

set print=ask-yes
set print_command="..."

그러나 예쁜 인쇄를 위해 어떤 인쇄 명령을 사용해야 합니까?

글쎄, a2ps출력은 -=mail지름길 조차도 약간 스파르타 인 것 같습니다 . 그것은 UTF8을 지원하지 않습니다 . 이 paps‘로 설명되는 Pango가를 사용하여 포스트 스크립트 변환기 UTF-8 ‘현재 마진에 대한 지원 또는 이메일 레이아웃이나 그런 일을 포함하지 않습니다.

mp: 좋은 기본 헤더. UTF8도 지원하지 않습니다. 기본 여백은 엄청나게 작습니다. 더 큰 여백을 지정하면 본문 텍스트가 바닥 글 뒤에 인쇄됩니다.

enscript: -G멋진 페이지 헤더의 경우 실제로 훌륭합니다. UTF8이 지원 되지 않습니다 .

Mutt에서 메일을 인쇄하기 위해 21 세기에 무엇을 사용하십니까?

(PS 및 / 또는 PDF로 UTF8, DIN A4 출력을 지원해야합니다)



답변

Muttprint있습니다 . 그것은 않습니다 지원 UTF-8 및 출력은 기본적으로 괜찮은 보인다. Muttprint는 LaTeX를 사용하며 사용자 정의를위한 후크를 제공합니다.

다른 환경에서 메일을 인쇄하고 있으므로 기본 프린터를 사용할 수 없습니다. 따라서 ~/.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_decodeprint_command가 자체적으로 MIME, 인코딩 등을 디코딩 할 수 있는지 구성하기 위해 muttrc 내부를 설정할 수 있습니다. 기본적으로는로 설정되어 yes있는 같은 명령에 적합한 설정입니다 muttprint, enscript

a2ps, enscript 및 mp의 UTF-8 문제와 관련하여 그것들은 쓸모없는 것으로 간주되어야한다고 결론 지을 수 있습니다. 실제로, 유지되지 않는 프로젝트 페이지를 보면 (예 : mp 페이지의 최신 뉴스 항목은 2002 년이며 Sun에있는 메일 링리스트를 언급합니다).


답변

UTF-8로 인코딩 된 파일을 읽고 파일의 포스트 스크립트 언어 렌더링을 생성하는 paps 사용을 고려할 수도 있습니다 . pango ft2 백엔드를 통해 윤곽 곡선을 작성하여 렌더링을 수행합니다.


답변

더 안전하고 적은 용지를 사용하여 wrapper:

에 대한 인쇄 명령이 있습니다 .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

이것은 것입니다

  • 현재 인쇄 메일을 저장할 임시 디렉토리를 안전하게 작성하십시오.
  • 포스트 스크립트로 변환하지만
    • 페이지가 두 개 이상인 경우
    • 다시 변환하지만 한 장에 2 페이지를 넣습니다.
  • gv내가 좋아하기 때문에 실행 하지만 다른 도구를 실행할 수 있습니다.
  • 종료시 임시 디렉토리를 삭제하십시오.

답변

다음은 다른 UNIX에서 사용하는 간단한 영수증입니다.

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

여기서 ••My_printer••프린터 이름입니다.


답변