Je sais que je peux configurer une commande d'impression dans Mutt via .muttrc
, par exemple:
set print=ask-yes
set print_command="..."
Mais quelle commande d'impression dois-je utiliser pour une jolie impression?
Eh bien, la a2ps
sortie semble un peu spartiate, même avec le -=mail
raccourci. Il ne prend pas en charge UTF8 . Il y en a un paps
qui est décrit comme ' Convertisseur UTF-8 vers PostScript utilisant Pango ' et qui n'inclut pas actuellement la prise en charge des marges, de la mise en page des e-mails ou quelque chose du genre.
mp
: joli en-tête par défaut. Encore une fois, aucun support UTF8. Les marges par défaut sont ridiculement petites - si vous spécifiez des marges plus larges, le texte du corps est imprimé derrière le pied de page.
enscript
: -G
pour les en-têtes de page fantaisie est en effet fantaisie. Pas de support UTF8 .
Qu'utilisez-vous au 21e siècle pour imprimer vos courriers à partir de Mutt?
(Il doit prendre en charge la sortie UTF8, DIN A4 en PS et / ou PDF)
print_command
. Ainsi, il ne suffit pas de tester print_commands via la|
commande (pipe) dans mutt.Réponses:
Il y a aussi Muttprint . Il prend en charge UTF-8 et sa sortie semble décente par défaut. Muttprint utilise LaTeX et fournit des crochets pour la personnalisation.
Étant donné que j'imprime des e-mails à partir d'environnements différents, je ne peux pas utiliser une imprimante par défaut. Ainsi, je l'ai configuré (via
~/.muttrc
) pour utiliser une visionneuse PDF où je peux sélectionner dynamiquement une imprimante:Mktemp utilise
/tmp
, par défaut. Pour utiliser un répertoire de cache personnalisé:Btw, vous pouvez définir à l'
print_decode
intérieur de muttrc pour configurer si la commande print_command est capable de décoder MIME, encodages, etc. par elle-même. Par défaut, il est défini suryes
le paramètre approprié pour des commandes telles quemuttprint
,enscript
etc.En ce qui concerne les problèmes UTF-8 de a2ps, enscript et mp, on peut simplement conclure qu'ils doivent être considérés comme obsolètes. En effet, en regardant les pages du projet, elles ne semblent pas être maintenues (par exemple, la dernière nouvelle de la page mp date de 2002 et mentionne une liste de diffusion située chez Sun).
la source
/tmp/$USER.ps
est hautement prévisible par les autres utilisateurs. Utilisezmktemp
créer des fichiers temporaires! (Voir ma réponse )./tmp/$USER.ps
est idiot. J'ai mis à jour ma réponse./tmp/*
est supprimé au redémarrage.mktemp
la raison d'être est d'éviter les collisions de noms de fichiers. Il peut cependant échouer pour d'autres raisons. J'ai changé la commande de telle sorte que muttprint n'est exécuté que si mktemp a réussi (je soupçonne que muttprint serait par défaut sur un autre nom de fichier lorsqu'ilf
est vide). Ainsi, vous ne vous retrouvez maintenant avec un fichier temporaire résiduel que si evince ou rm échoue. Je considère cela peu probable - et s'ils le font, je considère que le fichier problématique a conservé une aide pour le débogage du problème. Bien sûr,/tmp
est automatiquement nettoyé. Mais$HOME
est avantageux pour les documents sensibles lorsqu'il est chiffré mais/tmp
ne l'est pas.mktemp -p $HOME/.cache/mutt-XXXXXXXXXX
dans ce cas, maismktemp
c'est l'outil correct.Vous pouvez également envisager d'utiliser paps , qui lit un fichier codé UTF-8 et génère un rendu en langage PostScript du fichier. Le rendu se fait en créant des courbes de contour via le backend pango ft2.
la source
Plus sûr et utilisant moins de papier, créez un
wrapper
:Il y a ma commande d'impression pour
.muttrc
:Et il y a le contenu de
"$HOME/bin/print_preview-wrapper.sh"
Cette volonté
gv
parce que je l'aime, mais vous pouvez exécuter n'importe quel autre outil.la source
read tmpdir < <(mktemp -d /tmp/print_preview-$USER-XXXXXXXX)
un avantage surtmpdir=$(mktemp -d /tmp/print_preview-$USER-XXXXXXXX)
?read host foo foo ip < <(host google.com); echo $ip $host
Voici une recette simple que j'utilise sur différents UNIX:
où
••My_printer••
est le nom de l'imprimante.la source