Форум сайта python.su
0
igor.kaistДействительно, с моим физическим принтером (canon pixma ip1500, струйник) не сработало (появляется в очереди файл и тут же исчезает), только с pdf-принтером.
Не со всеми принтерами
Отредактировано (Окт. 20, 2008 18:51:39)
Офлайн
3
sbarон работает!!! Я сам проверял лично! В 4 посте я описывал варианты, которые испробывал лично.
На счет win32print — возможно ли его заставить работать в Python 2.5?
Офлайн
0
Ага. Видимо проект раньше назывался win32all, я сначала скачал его и для 2.5 его не оказалось.
Но все равно для моего принтера не срабатывает. :( Получается та же ерунда, что и с командой print: на короткое время появляется в очереди файл и исчезает (по крайней мере венда так считает, до принтера вряд ли что-то доходит, ибо он должен мигнуть лампочкой при принятии инфы).
Офлайн
3
То что там в примерах это не постскрипт! убедись что у тебя твой принтер стоит в системе как принтер по умолчанию. Когда смотришь на вывод примера в консоль, посмотри название принтера, оно должно промелькнуть. Я и с лазерником пробовал и со струйником, все было пучком. Там используется вин апи, для отправки битмапа на печать а не постскрипт. С постскриптом у меня тоже не вышло
Офлайн
0
sbarЕсть Sumatra PDF. Из консоли печатает.
Есть ли свободный или хотя бы бесплатный (не shareware) аналог Foxit Reader (или что-то аналогичное, важна только печать из консоли postscript, pdf или хотя бы картинки (любой: векторной, растровой))?
Офлайн
0
igor.kaist, PIL+win32print работает, спасибо (рабочий пример тут брал).
igor.kaistС какими например? Или это имелось ввиду что postscript не всеми принтерами поддерживается? Просто PIL+win32print нормально распечатает картинку (не postscript) на всех принтерах?
Tkinter.Canvas+win32print или PIL+win32print, генерится сначала postscript, затем он отправляется на печать. Этот способ медленный уж очень, да и не со всеми принтерами работает
shizaПопробовал распечатать им из консоли: выдалось окно с pdf и повисло. Памяти съело 100 Mb. Ничего не распечаталось.
Есть Sumatra PDF. Из консоли печатает.
Отредактировано (Окт. 21, 2008 21:40:18)
Офлайн
3
С PIL и win32 все нормально на всех имеющихся у меня принтерах (на 4 запускал), так как это не постскрипт а Вин апи.
Вообще, извращенство, но в PIL можно и документ срендерить.. В большинстве случаев, много ли нужно: текст разными шрифтами, да таблицы
Офлайн
0
А может кто-нибудь привести простой пример печати через pycups? А то документации по нему я что-то совсем не нахожу, и в help(cups) не нашел как распечатать.
UPD: вот такой код должен работать? У меня не печатает:
import cups
cups.setUser("root")
cups.setServer("localhost")
c = cups.Connection()
c.printFile("/usr/share/pixmaps/inkscape.png", c.getDefault(), "", {})
Отредактировано (Ноя. 9, 2008 00:41:35)
Офлайн
0
Что-то здесь никто ничего не сказал про gtk.PrintOperation, хотя он по идее должен быть наиболее правильным для pygtk. Кто-нибудь пробовал печатать через него?
Пытаюсь печатать так
#!/bin/env python
# -*- coding: utf-8 -*-
import gtk, pango
def draw_page(operation, context, page_nr):
cairo_context = context.get_cairo_context()
width = context.get_width()
cairo_context.fill()
layout = context.create_pango_layout()
description = pango.FontDescription("Times New Roman 12")
layout.set_font_description(description)
layout.set_text("\n\nTest")
layout.set_width(int(width))
layout.set_alignment(pango.ALIGN_CENTER)
cairo_context.show_layout(layout)
def do_print():
print_op = gtk.PrintOperation()
#print_op.set_property("allow-async", True)
print_op.connect("draw_page", draw_page)
print_op.set_n_pages(1)
res = print_op.run(gtk.PRINT_OPERATION_ACTION_PRINT)
do_print()
Отредактировано (Дек. 4, 2008 23:03:44)
Офлайн
3
Я вот бьюсь над задачей печати изображений… Вообщем то мне нужен как раз диалог принтера, чтоб установить параметры печати, типа размер бумаги, и главное качество. Это все зависит от драйверов принтера. Может в лоб решить задачу?! Кто нибудь может подсказать как вызвать стандартный виндовый мастер печати, для определенного файла? Никак не могу найти, как это сделать из коммандной строки :(
Офлайн