How to control paper size and type from Python program?

Discussion in 'Small Format Inkjet Printers' started by Paul Houle, Jun 8, 2022.

  1. Paul Houle

    Paul Houle New Member

    Joined:
    Jun 2022
    Messages:
    1
    Location:
    Brooktondale NY
    Hello, right now I print cards, often 4x6 and 5x7 and 8x8 with a cheap inkjet printer, an Epson ET-4760. The output is OK but the ink is not lightfast and the paper feed mechanism jams if I use paper that is too thin, too thick, too slick, etc. I have an ET-16650 on order, maybe I will get it if the shortages clear up, it will clear up those problems but will probably be the same in terms of software.

    My card has a front side that is a photo or an art reproduction that I process with Photoshop. They also have a back side that is drawn by a Python program which manages a metadata database of the cards and also draws the back side as a PNG. Here is what I call a "constellation"

    https://gen5.info/$/Z4ROMPMO9FIJMOHQT/

    Those cards are stuck on my office door so people can't flip the back sides over to see them, but there is a QR code next to the cards that points to that URL. If you go there you can click on the cards to "flip them over" virtually and see the back sides.

    Anyway when I print multiples of a card I print the same URL and the same QR code on all of them but I'd like to give each card a unique identity. (Like a serial number)

    It's a hassle to make these PNG files and then print them manually in Photoshop and I know if I do it a lot I am going to screw up sometimes and mismatch the back and the front, print multiples with the same back, etc.

    So I want to make my Python project print the PNG right to the printer

    In Photoshop I can open up a print dialog and click on "print settings" and I see what looks like a GUI control supplied by Epson that lets me set the paper size, paper type, color management, and many other things. My guess is that control passes all that configuration to the printer driver and that goes to the printer.

    I looked at the main Windows API for printing, WINSPOOL, and see a big mismatch with what it offers and what I can do with that dialog box. WINSPOOL for instance does not know about 4x6 cards or the custom 8x8 card that I print all the time. I did some experiments and it seems the printer completely ignores the paper size when I set it with WINSPOOL.

    I see people on forums and YouTube who are using the dialog box but having a hard time finding documentation on how to program the settings for inkjet printers from Python or other programming languages.

    Any idea if it can be done?
     
Loading...