Существует ли стандартный и кросс-платформенный способ печати текста (или даже PS/PDF) на системном принтере?
Предполагая CPython здесь, не что-то умное, как использование Jython и Java API печати.
Существует ли стандартный и кросс-платформенный способ печати текста (или даже PS/PDF) на системном принтере?
Предполагая CPython здесь, не что-то умное, как использование Jython и Java API печати.
К сожалению, нет стандартного способа печати с использованием 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")
Это запустит файл в своем открывателе по умолчанию с глаголом 'print', который будет печатать на ваш принтер по умолчанию. Только для модуля os
, который поставляется со стандартной библиотекой
Для печати на любом принтере в сети вы можете отправить задание печати PJL/PCL непосредственно на сетевой принтер на порту 9100.
Пожалуйста, ознакомьтесь с приведенной ниже ссылкой, которая должна дать хороший старт:
http://frank.zinepal.com/printing-directly-to-a-network-printer
Кроме того, если есть способ вызвать Windows cmd, вы можете использовать FTP-адрес для печати своей страницы на 9100. Ниже ссылка должна предоставить вам подробную информацию, я использовал этот метод для принтеров HP, но я считаю, что он будет работать для других принтеров,
http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpj06165
Вы можете попробовать wx library. Это кроссплатформенная пользовательская библиотека. Здесь вы можете найти учебник по печати: http://wiki.wxpython.org/Printing