J'essaie d'imprimer des documents ODT de LibreOffice 4 (système d'exploitation Ubuntu 13.04) sur une imprimante Toshiba e-Studio 167. Lorsque le document a des polices telles que Liberation Sans, Liberation Serif, etc., je reçois une page imprimée avec l'erreur suivante:
ERROR:
invalidfont
OFFENDING COMMAND
$definefont
STACK:
--nostringval--
/WASRNP+LiberationSerif
--nostringval--
/WASRNP+LiberationSerif
--nostringval--
--nostringval--
17
Toutefois, si vous exportez un fichier ODT au format PDF et que j’imprime le fichier PDF ou si j’imprime un autre fichier PDF à partir d’Acrobat, aucun problème ne se produit.
J'ai essayé les solutions données dans ces discussions, mais si je change le type de langage d'impression en PostScript, j'obtiens la même erreur:
Impossible d'imprimer depuis LibreOffice
Problème d'impression dans LibreOffice Writer mais pas dans Adobe Acrobat Reader ou Evolution
Pour essayer de résoudre le problème, j'ai configuré incron afin d'imprimer d'abord sur une imprimante PDF, puis d'imprimer le fichier sur l'imprimante.
Chacune de ces commandes fonctionne à partir de la ligne de commande et le fichier est imprimé correctement:
cat <file.pdf> | acroread -toPostScript | lpr -P <printer name>
cat pdf2ps <file.pdf> | lpr -P <printer name>
mais ce n'est pas le cas (l'imprimante ne fait rien), si je les mets dans le fichier ouvert lors de l'exécution de "incrontab -e".
incrontab -e
/home/<user>/PDF IN_CLOSE_WRITE cat $@/$# | acroread -toPostScript | lpr -P <printer name>
sauvegarder le fichier
Ou
incrontab -e
/home/<user>/PDF IN_CLOSE_WRITE cat pdf2ps $@/$# | lpr -P <printer name>
sauvegarder le fichier
Incron fonctionne bien avec d'autres commandes, comme cp.
D'autre part, les deux configurations suivantes pour "incrontab -e" permettent à l'imprimante de fonctionner, mais avec le problème que j'ai mentionné au début. Pourrait être un problème avec des tuyaux?
/home/launion/PDF IN_CLOSE_WRITE /usr/lib/libreoffice/program/soffice --invisible --norestore -pt <printer name> $@/$#
/home/launion/PDF IN_CLOSE_WRITE lpr -P <printer name> -o Resolution=600x600dpi -o PageSize=A4 -o Duplex=None $@/$#
Finalement, j'ai résolu le problème en utilisant un simple script bash (/usr/local/bin/print_pdf.sh), en évitant l'utilisation de canaux dans le fichier incrontab:
#!/bin/bash
cat $1 | acroread -toPostScript | lpr -P <printer name>
Permision d'exécution pour tous les utilisateurs:
Sudo chmod a+x /usr/local/bin/print_pdf.sh
Après cela, en tant qu'utilisateur normal:
incrontab -e
/home/launion/PDF IN_CLOSE_WRITE print_pdf.sh $@/$#
sauvegarder le fichier
Désormais, lors de l’impression sur l’imprimante virtuelle PDF, l’imprimante Toshiba recevra le fichier au format PostScript et l’imprimera correctement.
Je n'ai pas essayé avec la commande pdf2ps mais cela fonctionnera peut-être aussi.