Форум сайта python.su
Добрый день, народ, подскажите, кто нибудь? Необходимо отправлять на принтер, подключенный по USB документы, которые могут содержать и кириллицу и латиницу и цифры(договоры, как правило), уже третий день парюсь, но пока ни одного русского символа распечатать не удалось…
Мысль была через win32print сие осуществить… следующий код использовал:
INCH = 1440 hDC = win32gui.CreateDC("Display", None, None) pyprinter = win32ui.CreateDCFromHandle(hDC) pyprinter.CreatePrinterDC(win32print.GetDefaultPrinter ()) pyprinter.StartDoc("Test doc") pyprinter.SetMapMode(win32con.MM_TWIPS) pyprinter.DrawText (u"Факинщит", (0, INCH * -1, INCH * 8, INCH * -2), win32con.DT_CENTER) pyprinter.EndDoc()
Офлайн
http://python.su/forum/topic/13460/?page=1#post-81611
Офлайн
Я, конечно, дико извиняюсь, но уточню - мне нужно через pywin все это организовать - начальство настаивает… Я и сам прекрасно понимаю что Qt использовать - высший кайф, но…. нельзя… Поэтому необходимо использовать win32print, но такой маленький прикол с указанием кодировки (я имел в виду u), не работает…
Офлайн
> но такой маленький прикол с указанием кодировки (я имел в виду u), не работает…
Перекодируй текст в cp-1251, тогда может и заработеет.
u"Факинщит".encode("cp1251")
Офлайн
при энкоде все это переводиться в байты. подобную штуку делал при использовании win32print.WritePrinter - там нужно передавать байты, но на странице получал набор символов (с кодировкой в том случае бесполезно играться - не помогает, там вроде в PostrScript переделывать нужно) В данном случае команда DrawText требует у себя строку - но опять получаем слетевшую кодировку…
Офлайн
Неужели никто не знает? никто не писал на питоне под винду?
Офлайн
feniks92Под винду писали :).
никто не писал на питоне под винду?
os.startfile("out.pdf", "print")
feniks92
В последующем планируется использовать для печати формат rtf…
Отредактировано doza_and (Окт. 3, 2015 17:13:58)
Офлайн
Спасибо ,да, на эту ссылку натыкался, отложил пока, ибо пдф… ну если ничего более не найду - попробую через пдф То есть, если я правильно понял, то отправлять на печать русский текст через win32 в принципе не получится?
Офлайн
feniks92Да кто его знает. Может и получится. НО позвольте развести холивар.
win32 в принципе не получится
feniks92Поэтому любой здравомыслящий человек начнет с pdf.
ну если ничего более не найду
Офлайн
Ну, холивара не будет У нас не счета, у нас эьтакий шаблон договора, который будет печататься автономно на терминале оплаты.. (долгая история), я сам понимаю, что проще в пдф проще будет и данные подставлять - там хоть через JS, хоть как… вариантов масса, просто начальство давит Хочет в rtf, типа “старинный устоявшийся формат” Но спасибо, попробую через пдф - хоть рабочее решение бьудет, потом буду мучаться с остальными форматами
Офлайн