LibreOffice 4(Ubuntu 13.04 OS)から東芝e-Studio 167プリンターにODTドキュメントを印刷しようとしています。文書にLiberation Sans、Liberation Serifなどのフォントがある場合、次のエラーを含む印刷ページが表示されます。
ERROR:
invalidfont
OFFENDING COMMAND
$definefont
STACK:
--nostringval--
/WASRNP+LiberationSerif
--nostringval--
/WASRNP+LiberationSerif
--nostringval--
--nostringval--
17
ただし、ODTファイルをPDFにエクスポートしてPDFファイルを印刷する場合、または別のPDFファイルをAcrobatから印刷する場合、何も問題ない。
私はこのスレッドで示された解決策を試してきましたが、プリンター言語のタイプをPostScriptに変更すると、同じエラーが発生します。
LibreOffice Writerでの問題印刷、ただしAdobe Acrobat ReaderまたはEvolutionではありません
この問題を解決するために、PDFプリンターに最初に印刷し、次にプリンターにファイルを印刷するために、cronを構成しました。
このコマンドはいずれもコマンドラインから機能し、ファイルは問題なく印刷されます。
cat <file.pdf> | acroread -toPostScript | lpr -P <printer name>
cat pdf2ps <file.pdf> | lpr -P <printer name>
しかし、 "incrontab -e"を実行するときに開いたファイルにそれらを入れた場合、それは(プリンターは何もしません)しません。
incrontab -e
/home/<user>/PDF IN_CLOSE_WRITE cat $@/$# | acroread -toPostScript | lpr -P <printer name>
ファイルを保存する
または
incrontab -e
/home/<user>/PDF IN_CLOSE_WRITE cat pdf2ps $@/$# | lpr -P <printer name>
ファイルを保存する
Incronは、cpなどの他のコマンドで正常に動作します。
一方、「incrontab -e」の次の2つの設定により、プリンターは動作しますが、冒頭で述べた問題があります。パイプに問題がある可能性がありますか?
/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 $@/$#
最後に、単純なbashスクリプト(/usr/local/bin/print_pdf.sh)を使用して問題を解決し、incrontabファイル内でのパイプの使用を回避しました。
#!/bin/bash
cat $1 | acroread -toPostScript | lpr -P <printer name>
すべてのユーザーの実行許可:
Sudo chmod a+x /usr/local/bin/print_pdf.sh
その後、通常のユーザーとして:
incrontab -e
/home/launion/PDF IN_CLOSE_WRITE print_pdf.sh $@/$#
ファイルを保存する
これで、仮想プリンターPDFプリンターに印刷するとき、東芝プリンターはPostScriptでファイルを受け取り、正常に印刷されます。
私はpdf2psコマンドを試しませんでしたが、多分うまくいくでしょう。