10

I have a postscript file and want it to be printed on a IPP capable device (or CUPS server). What is the minimal code and dependencies I could get away with to do that.

Using LPR or libcups gives me lot of cross-plattform dependencies. So my first approach was to implement a minimal subset of IPP (the protocol used by cups and many modern printers) since "it's only extended HTTP". But unfortuntely a IPP client is a lot more code than a few lines and so far I found no IPP client implementation meant for just printing and not managing a printserver.

I would prefer a solution in Python, but would also be happy with something in an oter dynamic language.

IPP Nerd
  • 992
  • 9
  • 25
max
  • 29,122
  • 12
  • 52
  • 79

3 Answers3

1

you need to add remote printer to CUPS:

lpadmin -p printername -E -v //IPADDRESS/spool -m driver.ppd

where driver.ppd is the driver to print with

ps: this could also work for programatic access, if printer is set before.

dusoft
  • 11,289
  • 5
  • 38
  • 44
  • This obviously needs a working local cups installation, a requirement I like to avoid - especially on Windows. – max Aug 20 '09 at 07:54
  • also check this (old) tutorial: http://www.owlfish.com/thoughts/winipp-cups-2003-07-20.html – dusoft Aug 20 '09 at 11:35
1

There's a python wrapper for CUPS ipptool available at github:

This python lib looks also promising:

You might also want to check this answer.

IPP Nerd
  • 992
  • 9
  • 25
1

pycups is an excellent tool; here is an example of some code that uses it - including setting some options like fit-to-page https://sourceforge.net/p/coils/coils-code/ci/master/tree/coils/logic/workflow/actions/doc/ipp_print.py#l58

There is also code floating around for using the LPR protocol. https://sourceforge.net/p/coils/coils-code/ci/master/tree/coils/logic/workflow/actions/doc/lpr_print.py

Communicating directly with the print server is much better than wrapping a platform dependent command line tool.