Подтвердить что ты не робот

Печать на стандартный принтер с Python?

Существует ли стандартный и кросс-платформенный способ печати текста (или даже PS/PDF) на системном принтере?

Предполагая CPython здесь, не что-то умное, как использование Jython и Java API печати.

4b9b3361

Ответ 1

К сожалению, нет стандартного способа печати с использованием 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 (кросс-платформу)?

Ответ 2

Это было протестировано только в Windows:

Вы можете сделать следующее:

import os

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

Это запустит файл в своем открывателе по умолчанию с глаголом 'print', который будет печатать на ваш принтер по умолчанию. Только для модуля os, который поставляется со стандартной библиотекой

Ответ 3

Для печати на любом принтере в сети вы можете отправить задание печати 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

Ответ 4

Вы можете попробовать wx library. Это кроссплатформенная пользовательская библиотека. Здесь вы можете найти учебник по печати: http://wiki.wxpython.org/Printing