システム定義のプリンターにテキスト(またはPS/PDF)を印刷するための合理的で標準的なクロスプラットフォームの方法はありますか?
残念ながら、すべてのプラットフォームでPythonを使用して印刷する標準的な方法はありません。したがって、印刷するには独自のラッパー関数を作成する必要があります。
OSを検出する プログラムが実行されている必要があります:
Linuxの場合-
import subprocess
lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
lpr.stdin.write(your_data_here)
Windowsの場合: http://timgolden.me.uk/python/win32_how_do_i/print.html
その他のリソース:
これはWindowsでのみテストされています。
次のことができます。
import os
os.startfile("C:/Users/TestFile.txt", "print")
これにより、デフォルトのオープナーで動詞「print」を使用してファイルが開始され、デフォルトのプリンターに印刷されます。標準ライブラリに付属するos
モジュールのみが必要です
ネットワーク上のプリンターに印刷するには、ポート9100でネットワークプリンターに直接PJL/PCL印刷ジョブを送信できます。
良いスタートを切るはずの以下のリンクをご覧ください。
http://frank.zinepal.com/printing-directly-to-a-network-printer
また、Windows cmdを呼び出す方法がある場合、FTP putを使用して9100でページを印刷できます。以下のリンクで詳細を説明します。HPプリンターでこの方法を使用しましたが、他のプリンターでも機能すると思います。
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj06165
Wxライブラリを試すことができます。これは、クロスプラットフォームUIライブラリです。ここに印刷チュートリアルがあります: http://wiki.wxpython.org/Printing