システム定義のプリンターにテキスト(またはPS / PDF)を印刷するための合理的に標準的でクロスプラットフォームの方法はありますか?
ここでCPythonを想定すると、JythonやJava印刷APIを使用するような賢いものではありません。
システム定義のプリンターにテキスト(またはPS / PDF)を印刷するための合理的に標準的でクロスプラットフォームの方法はありますか?
ここでCPythonを想定すると、JythonやJava印刷APIを使用するような賢いものではありません。
これはWindowsでのみテストされています。
次のことができます。
import os
os.startfile("C:/Users/TestFile.txt", "print")
これにより、デフォルトのオープナーで動詞「print」を使用してファイルが開始され、デフォルトのプリンターに出力されます。os
標準ライブラリに付属するモジュールのみが必要です。
残念ながら、すべてのプラットフォームで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
その他のリソース:
ネットワーク上の任意のプリンタに印刷するには、PJL/PCL印刷ジョブをポート9100のネットワークプリンタに直接送信できます。
良いスタートを切ることができる以下のリンクを見てください:
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ライブラリです。ここで印刷チュートリアルを見つけることができます: https ://web.archive.org/web/20160619163747/http://wiki.wxpython.org/Printing
少なくともWebアプリケーションを扱う場合は、これが優れたソリューションであることがわかります。アイデアはこれです:HTMLページをPDFドキュメントに変換し、それを経由してプリンタに送信しgsprint
ます。
gsprint
もはや開発中ではありませんが、それは本当に、本当にうまく機能します。他のいくつかのオプションの中から、プリンタとページの向きとサイズを選択できます。
ChromeのヘッドレスブラウザであるPuppeteerを使用してWebページをPDFに変換します。ただし、資格情報を維持するには、セッションCookieを渡す必要があります。