我知道我可以通过在 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
命令的正确设置。muttprint
enscript
关于 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••
是打印机的名称。