Печать на стандартный принтер с Python?
есть ли разумно стандартный и кросс-платформенный способ печати текста (или даже PS/PDF) на системном принтере?
предполагая, что CPython здесь, не что-то умное, как использование Jython и API печати Java.
4 ответов
к сожалению, нет стандартного способа печати с использованием Python на всех платформах. Поэтому вам нужно будет написать свою собственную функцию обертки для печати.
вам нужно обнаружение ОС ваша программа работает, а затем:
Для 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
больше ресурсов:
печать PDF-документа с помощью win32print python модуль?
как печатать на принтере ОС по умолчанию в Python 3 (кросс-платформенный)?
это было протестировано только на Windows:
Вы можете сделать следующее:
import os
os.startfile("C:/Users/TestFile.txt", "print")
это запустит файл, в открывателе по умолчанию, с глаголом "печать", который будет печатать на принтер по умолчанию.Требуется только os
модуль, который поставляется со стандартной библиотекой
для печати на любом принтере в сети вы можете отправить задание печати 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. Это кросс-платформенная библиотека пользовательского интерфейса. Здесь вы можете найти учебник по печати: http://wiki.wxpython.org/Printing