2012-10-04 74 views
21

システム定義のプリンタにテキスト(またはPS/PDF)を印刷するのに適度な標準とクロスプラットフォームの方法はありますか?Pythonから標準プリンタに印刷しますか?

ここでは、CPythonとすると、JythonとJava printing APIのような賢いものではないと仮定します。

+0

お使いのプリンタの種類は? POSプリンタへの印刷についてのチュートリアルhttp://goo.gl/rd8lm – Switch

+0

Java印刷でこれを行うことができると仮定すると、別の「巧妙な」解決策はJPypeです(cpythonとjvmが通信/コードを実行する方法) –

答えて

21

残念ながら、すべてのプラットフォームでPythonを使用して印刷する標準的な方法はありません。したがって、あなた自身のラッパー関数を記述して印刷する必要があります。あなたはあなたのプログラムをdetect the OSする必要が

はその後、実行されている:

Linuxの場合 - Windowsの場合

import subprocess 
lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE) 
lpr.stdin.write(your_data_here) 

http://timgolden.me.uk/python/win32_how_do_i/print.html

その他のリソース:

Print PDF document with python's win32print module?

0123ポート上でネットワークプリンタに直接9100

をPJL/PCL印刷ジョブを送信することができ、ネットワーク上の任意のプリンタに印刷する

6

良いスタートを与える必要があり、下のリンクを見てください。

http://frank.zinepal.com/printing-directly-to-a-network-printer

あなたの詳細を与える必要がありますWindowsは、あなたがリンクの下に9100のあなたのページを印刷するために入れてFTPを使用することができますCMD呼び出す方法がある場合にも、私はHPプリンタ用にこの方法を使用しているが、私は信じています他のプリンタでも動作します。

http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj06165

19

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

あなたは、次の操作を行うことができます

import os 

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

これは、動詞「プリントと、そのデフォルトの開幕戦で、ファイルを開始します'、あなたのデフォルトのプリンタに印刷されます。os標準ライブラリに付属のモジュール

+0

https://docs.python.org/2/library/os.html#os.startfileによると、これは窓でのみ動作します – Buzz

1

wxライブラリを試してください。これは、クロスプラットフォームのUIライブラリです。ここでは印刷チュートリアルを見つけることができます: http://wiki.wxpython.org/Printing

+0

これは非常に有望です!私はPython +印刷ではこれ以上動作しませんが、もしprintがwxpythonでクロスプラットフォームで動作するなら、私はこの答えを受け入れます。 –

関連する問題