Serveur d'impression brut – Serveur d’impression
Copyright © 2005,
Chris Gonnerman
Tous les droits sont réservés
INTRODUCTION
Ceci est mon implémentation d'un serveur d'impression "Raw". Il permet à un ordinateur
prétendre être un serveur d'impression "API de socket" ou "AppSocket", c'est-à-dire un réseau
imprimante connectée. En fait, ce programme peut desservir plusieurs imprimantes,
chacun avec son propre port, simultanément.
CRÉDIT LORSQUE LE CRÉDIT EST DÛMENT DÉPARTEMENT
Ce logiciel n'existerait pas sans l'excellent asyncore de Sam Rushing
module, et il n'existerait pas sans l'excellente explication de Steve Holden
ce module (dans son livre "Python Web Programming" de New Riders, un véritable
livre remarquable que je ne saurais trop recommander) à partir duquel j'ai assez appris
écrire ce serveur. Je suis également redevable à Guido van Rossum pour Python
lui-même, ce qui a rendu ma vie tellement plus facile, et à Mark Hammond pour la
les modules win32all qui sont des éléments essentiels de la version Windows du
serveur d'imprimante.
NOTES DE VERSION
Ceci est la version 0.1 du serveur d'impression brut. Il n'y a pas d'installation
instructions pour parler de; Je prévois d'écrire un script d'installation pour aider à
pour que le logiciel soit opérationnel, mais pour le moment, tout est manuel.
Vous aurez besoin d’un système Python 2.x opérationnel pour exécuter le serveur d’impression lui-même.
et si vous installez sur Windows, vous aurez besoin d'un ensemble de travail du
win32all modules de Mark Hammond (que vous devriez vraiment avoir de toute façon).
Pour exécuter le programme de propriétés de l'interface graphique, vous avez besoin d'un ensemble de modules PyGTK fonctionnel.
et sous Windows, cela signifie également de trouver un runtime compatible GTK +.
Trouver tout ce qui précède est laissé comme exercice pour le lecteur.
soupir
D'accord. Si vous utilisez un système Linux récent, ou l’un des membres de la famille BSD, vous
devrait être en mesure d'installer tout ce qui précède à partir de votre installation d'origine
multimédia, ou téléchargez-les du site Web approprié pour votre distribution.
Si vous utilisez Windows, commencez par vous procurer une version récente de Python.
www.python.org; suivez les liens de ce site vers les téléchargements de win32all
(actuellement quelque part sur Sourceforge). Après cela, allez sur www.pygtk.org et
suivez leurs liens vers les téléchargements dont vous avez besoin pour Windows. Notez que dès le
cette fois (octobre 2005), les bibliothèques GTK normalement utilisées pour le logiciel Gimp
ne fonctionne pas avec PyGTK (malgré les remarques du site PyGTK pour Windows
qu’ils font), du moins, pas sur Win9x. Obtenez le runtime ou le développement
bibliothèques référencées à partir du site PyGTK pour Windows. Si vous avez déjà
Gimp installé, désinstallez les bibliothèques GTK + que vous aviez auparavant
installer le runtime alternatif. Mon Gimp fonctionne toujours, donc ça doit aller,
droite?
N'OUBLIEZ PAS, comme il est dit dans la partie légale en haut, tout est à votre charge
risque et je ne suis pas responsable si le logiciel fait du mal, ou tout simplement pas
travailler du tout. J'ai fait tous les efforts pour le rendre bon, propre, fiable
trucs, mais il n'y a AUCUNE GARANTIE ou GARANTIE. Tu m'as rien payé
pour cela, comment pouvez-vous espérer que je vous donne quoi que ce soit si cela ne va pas?
Une fois ces éléments installés, trouvez un dossier pour décompresser le logiciel.
dans, et le faire. J'utilise C: Program Files RawPrintServer sous Windows, mais
sur Linux, je ne sais pas où est le "bon" endroit pour le dire.
Exécutez d’abord le script rpsprops.pyw. Il vous invite pour le répertoire de spool,
nom du fichier journal (et chemin) et imprimante (s) à prendre en charge. Ces paramètres
sont sauvegardés dans le fichier de configuration (/etc/rpsrv.conf sous Linux / Unix / BSD,
C: WINDOWS SYSTEM32 rpsrv.conf sous Windows).
Je recommande ce qui suit sous Windows:
Répertoire de spool | C: WINDOWS TEMP | |
Fichier journal | C: WINDOWS rps.log |
Pour Unixoids, utilisez ce que vous aimez. La place appropriée pour rps.log est probablement
sous / var / log, et vous pouvez utiliser un dossier temporaire (/ tmp ou / var / tmp)
ou créez un dossier sous / var / spool (probablement un meilleur endroit).
Les définitions d'imprimante sont créées à l'aide du bouton Ajouter de l'interface graphique. Vous
besoin de définir un numéro de port différent pour chaque imprimante; le standard"
le port est 9100, mais j'ai vu 10000 et 10001 également beaucoup utilisés. L'imprimante
nom sur Unixoids est le nom standard LPR ou CUPS. Pour Windows, vous pouvez
déroulez une liste montrant les imprimantes "locales" actuellement définies pour sélectionner
de.
Notez que le bouton Quitter de l'interface graphique ne demande pas pour l'instant de sauvegarde.
N'oubliez pas le bouton Enregistrer!
Si vous n'avez pas ou ne voulez pas PyGTK sur votre système, vous pouvez facilement créer le
fichier rpsrv.conf à la main; ça ressemble à ça:
spooldir = / var / tmp
fichier journal = /var/log/rps.log
imprimante = 9100, lp
imprimante = 9101, matrice de points
Notez que la directive "printer" peut apparaître plusieurs fois, à chaque fois
définir une imprimante différente. Les lignes vides sont ignorées, de même que les lignes
en commençant par le caractère #. L'interface graphique ne conserve pas les commentaires, donc
Si vous créez le fichier à la main, puis le modifiez avec l'interface graphique, attendez-vous à ce que
commentaire à disparaître.
Pour démarrer le serveur sur un système Unixoid, exécutez simplement RawPrintServer.py. Il
se démonise automatiquement. RawPrintServer.py n'a pas besoin d'être
exécutez en tant que root (sauf si vous choisissez d’utiliser des numéros de port réservés), donc pour
des raisons de sécurité, je vous recommande de l'exécuter en tant qu'utilisateur régulier, de préférence un
créé juste pour le but. Ceci est également laissé comme un exercice pour le
lecteur.
Pour Windows NT / 2000/2003 / XP, utilisez RawPrintService.py. Exécutez-le à partir du
ligne de commande comme ceci:
démarrer RawPrintServer.py install
"start" peut être nécessaire ou non, selon la version de Windows que vous utilisez.
utilisent.
Après cela, allez dans l'interface du panneau de configuration des services, puis
vous trouverez le "serveur d'impression brut" dans la liste. Commencez-le, puis (si vous voulez)
Faites un clic droit et choisissez "Propriétés" et faites le démarrage automatique.
Actuellement, il n'y a pas de version à utiliser sur Win9x. Ceci est une chose mineure à
créer (principalement simplement supprimer le démonisation des pièces Unixoid de
RawPrintServer.py) mais je ne l’ai pas encore fait.
PLANS FUTURS
Je prévois de créer un script d'installation pour configurer tout cela
Plus facile. J’ai également l’intention d’ajouter une caractéristique de sécurité mineure au programme: un
Adresse IP "stem" qui doit être vérifiée avant qu'une connexion ne soit autorisée.
Par exemple, si la racine est "192.168.0.", Seuls les ordinateurs du groupe
Le sous-réseau 192.168.0.XXX serait autorisé à utiliser l’imprimante. Ce n'est pas un gros
traiter si vous avez un pare-feu NAT, mais sinon, il est probablement nécessaire.
Aucune indication sur la provenance de vos travaux d'impression …
Je pourrais même le configurer pour accepter une liste de "tiges" de ce type
ceux avec des réseaux plus compliqués.
Me contacter
Si vous avez des questions, des commentaires ou (j'espère) des améliorations concernant mon
Raw Print Server, n'hésitez pas à me contacter à l'adresse suivante:
chris.gonnerman@newcenturycomputers.net
Commentaires
Laisser un commentaire