web-dev-qa-db-ja.com

Pythonから標準プリンターに印刷しますか?

システム定義のプリンターにテキスト(またはPS/PDF)を印刷するための合理的で標準的なクロスプラットフォームの方法はありますか?

ここで CPython と仮定すると、Jythonと Java印刷API を使用するような巧妙なものではありません。

26
Prof. Falken

残念ながら、すべてのプラットフォームで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

その他のリソース:

Print PDF pythonのwin32printモジュールを含むドキュメント?

Python 3(クロスプラットフォーム)でOSのデフォルトプリンターに印刷するにはどうすればよいですか?

24
Anuj Gupta

これはWindowsでのみテストされています。

次のことができます。

import os

os.startfile("C:/Users/TestFile.txt", "print")

これにより、デフォルトのオープナーで動詞「print」を使用してファイルが開始され、デフォルトのプリンターに印刷されます。標準ライブラリに付属するosモジュールのみが必要です

23
user3444876

ネットワーク上のプリンターに印刷するには、ポート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

5
user1719655

Wxライブラリを試すことができます。これは、クロスプラットフォームUIライブラリです。ここに印刷チュートリアルがあります: http://wiki.wxpython.org/Printing

2
Admdebian