Reputation: 29983
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.
Upvotes: 11
Views: 7596
Reputation: 1124
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.
Upvotes: 1
Reputation: 196
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.
Upvotes: 1
Reputation: 11479
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.
Upvotes: 1