更安全并使用更少的纸张,创建一个wrapper:

更安全并使用更少的纸张,创建一个wrapper:

我知道我可以通过在 Mutt 中配置打印命令.muttrc,例如:

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

但是我应该使用什么打印命令漂亮的印刷?

好吧,a2ps即使有快捷方式,输出看起来还是有点简陋-=mail。它不支持UTF8. 有paps描述为“使用 Pango 的 UTF-8 到 PostScript 转换器' 目前不包括对边距、电子邮件布局或类似内容的支持。

mp: 不错的默认标题。再次不支持 UTF8。默认边距小得离谱 - 如果您指定更宽的边距,正文将打印在页脚后面。

enscript-G对于花哨的页眉确实很花哨。没有UTF8 支持

在 21 世纪,您使用什么来打印来自 Mutt 的邮件?

(它应该支持 UTF8、DIN A4 输出为 PS 和/或 PDF)

答案1

还有杂音。它支持 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"'

顺便说一句,您可以print_decode在 muttrc 内部设置来配置 print_command 是否能够自行解码 MIME、编码等。默认情况下,它设置为等yes命令的正确设置。muttprintenscript

关于 a2ps、enscript 和 mp 的 UTF-8 问题,我们只能得出这样的结论:它们应该被视为过时。事实上,查看项目页面,它们似乎没有得到维护(例如,mp 页面的最后一条新闻来自 2002 年,并且提到了位于 Sun 的邮件列表)。

答案2

您也可以考虑使用爸爸,它读取 UTF-8 编码的文件并生成该文件的 PostScript 语言呈现。渲染是通过 pango ft2 后端创建轮廓曲线来完成的。

答案3

更安全并使用更少的纸张,创建一个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

这会

  • 安全地创建临时目录来存储当前打印邮件,
  • 将它们转换为附记,但是
    • 如果超过 1 页,
    • 再次转换它们,但逐张放置 2 页。
  • 运行gv因为我喜欢它,但您可以运行任何其他工具。
  • 退出时删除临时目录。

答案4

这是我在不同 UNIX 上使用的简单方法:

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

其中••My_printer••是打印机的名称。

相关内容