9
votes

Quel est le moyen le plus simple (en python) à imprimer sur un serveur IPP / CUPS distant ou une imprimante?

J'ai un fichier PostScript et j'ai envie d'être imprimé sur un périphérique capable IPP (ou serveur de tasses). Quel est le code minimal et les dépendances que je pourrais tirer pour faire cela.

Utiliser LPR ou LIBCUPS me donne beaucoup de dépendances croisées de plâtre. Donc, ma première approche consistait à mettre en place un sous-ensemble minimal de l'IPP (le protocole utilisé par les tasses et de nombreuses imprimantes modernes) depuis "il est seulement étendu http". Mais malheureusement, un client IPP est beaucoup plus de code que quelques lignes et je n'ai trouvé jusqu'à présent aucune implémentation du client IPP destinée à imprimer et à ne pas gérer un imprimeur.

Je préférerais une solution en Python, mais elle serait également heureuse avec quelque chose dans une langue dynamique OTER.


0 commentaires

3 Réponses :


1
votes

Vous devez ajouter une imprimante distante aux tasses: xxx

où pilote.ppd est le pilote à imprimer avec

PS: cela pourrait également fonctionner pour un accès programmatique, Si l'imprimante est définie avant.


2 commentaires

Cela a évidemment besoin d'une installation de tasses locales de travail, une exigence que j'aime éviter - surtout sous Windows.


Vérifiez également ce (ancien) tutoriel: OWLFISH.COM/ Winipp-Cups-2003-07-20.html



1
votes

Il y a un wrapper python pour les tasses IPPTOOL Disponible chez GitHub:


0 commentaires

1
votes

pycups est un excellent outil; Voici un exemple de code qui l'utilise - y compris de définir certaines options telles que FIT-TO-Page https://sourceforge.net/p/CRIILS/COILS-CODE/ci/master/tree/Coins/logic/workflow/actions/doc/ipp_print.py#l58

Il existe également un code flottant pour utiliser le protocole LPR. HTTPS: //sourceforge.net/p/CIILS/COILS-CODE/ci/Master/tree/Coin/logic/workflow/actions/doc/lpr_print.py

Communiquer directement avec le serveur d'impression est beaucoup mieux que d'envelopper un outil de ligne de commande dépendant de la plate-forme.


0 commentaires