Again I'm referencing Tim Golden from http://timgolden.me.uk/python/win32_how_do_i/print.html
This code block is relevant: <code> import os, sys import win32print printer_name = win32print.GetDefaultPrinter () # # raw_data could equally be raw PCL/PS read from # some print-to-file operation # if sys.version_info >= (3,): raw_data = bytes ("This is a test", "utf-8") else: raw_data = "This is a test" hPrinter = win32print.OpenPrinter (printer_name) try: hJob = win32print.StartDocPrinter (hPrinter, 1, ("test of raw data", None, "RAW")) try: win32print.WritePrinter (hPrinter, raw_data) finally: win32print.EndDocPrinter (hPrinter) finally: win32print.ClosePrinter (hPrinter) </code> Things are progressing along and I'm really more and more excited about python, every time I try to do something, It just seems to work and be straightforward. Notes: AFAICS win32pring.StartDocPrinter(hPrinter, 1, (jobname, None, None)) might be better as the last "None" tells the system to process through the print driver, Raw Data bypasses the print driver. Due to the variety of printers involved, I think bypassing the print driver with "RAW" will come back and bite me later. I also added a variable to catch the output from win32print.WritePrinter() so it would not display on the screen. I called it hSize. Questions: Under python 3 I need to send a byte string to the printer. But I wont have a byte string, I'll have a filename What is the pythonic way to convert a file to a bytestream? I can open the file for reading, and loop line by line through the file appending bytes(line, "utf-8") to variable but this doesn't seem right to me somehow. Is there a better way to do this? My HP laserjet 1100 does not print the job automatically. It accepts the job, processes the job, and then lights up the lights on the front of the printer and waits. When I hit the button, then the document prints. I have only seen this behavior before when printing envelopes. When an envelope print job goes to the printer it behaves the same way my python print jobs are. I suspect that this has to do with the fact that the page size of the printjob is either not specified or different from the standard 8.5 in wide x 11 in long it can handle. win32print documentation mentions DocumentProperties and DeviceCapabilities that might help, but I don't see how to use them to implement a solution for my problem. I further suspect that there are other printers out there that will behave similarly if they don't have specified what they needed. How do you deal with this problem? _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor