Wydrukować na standardowej drukarce z Pythona?

Czy istnieje dość standardowy i wieloplatformowy sposób drukowania tekstu (lub nawet PS/PDF) na drukarce zdefiniowanej w systemie?

Zakładając CPython tutaj, nie jest to coś sprytnego, jak użycie Jython i Java printing API .

Author: Prof. Falken, 2012-10-04

4 answers

Niestety, nie ma standardowego sposobu drukowania za pomocą Pythona na wszystkich platformach. Więc będziesz musiał napisać własną funkcję owijania do wydrukowania.

Musisz wykryć system operacyjny Twój program jest uruchomiony, a następnie:

Dla Linuksa -

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

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

Więcej zasobów:

Wydrukować dokument PDF za pomocą modułu win32print w Pythonie?

Jak wydrukować do systemu operacyjnego domyślna drukarka w Pythonie 3 (cross platform)?

 23
Author: Anuj Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:23

To zostało przetestowane tylko na Windows:

Możesz wykonać następujące czynności:

import os

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

Spowoduje to uruchomienie pliku w domyślnym otwierającym czasowniku 'print', który zostanie wydrukowany na domyślnej drukarce.Wymaga tylko modułu os dostarczanego z biblioteką standardową

 20
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-29 18:08:30

Aby wydrukować na dowolnej drukarce w sieci, można wysłać zadanie drukowania PJL/PCL bezpośrednio do drukarki sieciowej na porcie 9100.

Proszę spojrzeć na poniższy link, który powinien dać dobry początek:

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

Ponadto, jeśli istnieje sposób na wywołanie Windows cmd, możesz użyć FTP put, aby wydrukować swoją stronę na 9100. Poniżej link powinien podać szczegóły, użyłem tej metody do drukarek HP, ale wierzę, że będzie działać dla inne drukarki.

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

 6
Author: user1719655,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-04 11:21:02

Możesz wypróbować bibliotekę wx. To wieloplatformowa biblioteka interfejsu użytkownika. Tutaj znajdziesz samouczek drukowania: http://wiki.wxpython.org/Printing

 2
Author: Admdebian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-06 00:40:26