39

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

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

4

5 に答える 5

44

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

次のことができます。

import os

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

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

于 2014-03-21T04:26:40.190 に答える
35

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

その他のリソース:

Pythonのwin32printモジュールでPDFドキュメントを印刷しますか?

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

于 2012-10-04T10:25:38.363 に答える
8

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

于 2012-10-04T10:29:23.147 に答える
3

wxライブラリを試すことができます。クロスプラットフォームのUIライブラリです。ここで印刷チュートリアルを見つけることができます: https ://web.archive.org/web/20160619163747/http://wiki.wxpython.org/Printing

于 2015-03-06T00:40:26.873 に答える
1

少なくともWebアプリケーションを扱う場合は、これが優れたソリューションであることがわかります。アイデアはこれです:HTMLページをPDFドキュメントに変換し、それを経由してプリンタに送信しgsprintます。

gsprintもはや開発中ではありませんが、それは本当に、本当にうまく機能します。他のいくつかのオプションの中から、プリンタとページの向きとサイズを選択できます。

ChromeのヘッドレスブラウザであるPuppeteerを使用してWebページをPDFに変換します。ただし、資格情報を維持するには、セッションCookieを渡す必要があります。

于 2020-03-20T21:44:46.670 に答える