2010-08-03 32 views
1

Je veux créer un logiciel qui Windows détecte comme un pilote d'imprimante installé et la liste que le logiciel sous la rubrique « Périphériques et imprimantes »Software pour recevoir travaux d 'impression et de les transmettre aux imprimantes dans un réseau local

Tout comme le ImagePrinter sowftware, vous pouvez y accéder via le lien suivant. Lorsque cette imprimante d'image est installée sur un ordinateur, Windows la répertorie sous Imprimantes et périphériques afin que nous puissions cliquer avec le bouton droit de la souris et la partager sur notre réseau. Les utilisateurs du réseau local peuvent l'ajouter en tant qu'imprimante distante et lui envoyer des tâches d'impression, ce qui convertit ces tâches d'impression au format d'image (jpg, etc.) et les enregistre dans un répertoire spécifié. Ce dont j'ai besoin est d'obtenir ces travaux d'impression à partir d'autres PC sur LAN comme ImagePrinter et de les envoyer à de vraies imprimantes partagées dans le LAN en tant qu'envoi à partir de cette machine. (comme l'ordinateur exécutant mon logiciel envoyant ces travaux d'impression) afin qu'ils puissent être imprimés.

pour ce faire, je dois obtenir deux choses .. 1- créer le logiciel dans une fenêtre de façon détectera comme une imprimante (il pourrait être partagé facilement et recevoir des travaux d'impression)

2- Envoyer les travaux d'impression vers les imprimantes distantes installées sont ajoutés à la machine exécutant mon logiciel, tout comme les travaux d'impression de la machine.

Je veux les faire en C# (parce que mon reste du code d'application est en C#, de toute façon s'il peut être combiné ensemble alors le langage de programmation n'est pas une question.)

S'il vous plaît donnez-moi des instructions, ou même quelques sujets à lire ... parce que je n'ai aucune idée de comment le construire. Seulement peu de confiance parce que ImagePrinter est un logiciel similaire .. donc la tâche est possible.

Merci d'avance.

+0

J'ai trouvé quelques informations sur * pilote d'imprimante Microsoft Universal * ne sait aucune information à ce sujet? Comment l'utiliser, est-ce possible avec ce pilote? Y a-t-il de meilleures options? Voici le lien MSDN sur elle http://msdn.microsoft.com/en-us/library/ff556567%28v=VS.85%29.aspx grâce – Zerone

+0

Cette question est un double de http://stackoverflow.com/questions/3311565/print-job-accepting-and-routing-software - J'aurais dû le remarquer avant. –

Répondre

3

Cela peut être fait en combinant quatre ingrédients de la bonne manière:

  • une configuration de file d'attente d'impression avec un pilote d'imprimante PostScript, partagée sur le réseau local; (Faites défiler vers le bas pour obtenir gs871w{32,64}.exe) pour convertir PostScript en image;
  • Redmon (télécharger redmon17.zip) pour servir de «moniteur de port d'imprimante»;
  • un fichier batch DOS pour faire exactement ce que vous voulez;

Le file_attente_impression utilisera le 'Red -irector Port Mon -itor' pour canaliser les travaux PostScript entrants à un programme/application/batchscript de votre choix.

Ce qui reste à faire est de votre travail: écrire un programme simple/application/batchscript qui fait trois choses:

  1. prendre le PostScript entrant en entrée,
  2. appel d'une ligne de commande Ghostscript pour convertir entrée le% imageformat% de votre choix,
  3. et enfin envoyer le% imageformat% en tant que travaux à une imprimante de votre choix.

Voici un document qui décrit certaines des choses du besoin d'en savoir de base en ce qui concerne RedMon:


Voici quelques conseils supplémentaires:

Si vous êtes un débutant à Ghostscript, vous aurez probablement le plus gros problème avec la construction une ligne de commande qui ferait ce que vous avez besoin. Voici quelques exemples. Le premier convertirait les données arrivant de l'entrée standard (stdin, - à la fin de la commande) en une seule page, noir + blanc TIFF G4, avec une résolution de 600dpi, où chaque page est un fichier séparé, nommé page_001.tif, page_002.tif, etc .:

gswin32c^
    -dBATCH^
    -dNOPAUSE^
    -dSAFER^
    -sDEVICE=tiffg4^
    -r600x600^
    -sOutputFile=c:/path/to/output/page_%03d.tif^
    -       ### <-- note this! 

est ici une ligne de commande Ghostscript qui générerait la même sortie, mais cette fois comme une seule plusieurs pages TIFF G4:

gswin32c^
    -dBATCH^
    -dNOPAUSE^
    -dSAFER^
    -sDEVICE=tiffg4^
    -r600x600^
    -sOutputFile=c:/path/to/output/multi_page_g4.tif^
    -       ### <-- note this! 

Vous n'avez pas veux noir + blanc G4 T IFF, mais en couleur TIFF, CMJN 32 bits? OK, utilisez un périphérique de sortie différent pour Ghostscript:

gswin32c^
    -dBATCH^
    -dNOPAUSE^
    -dSAFER^
    -sDEVICE=tiff32nc^ 
    -r600x600^
    -sOutputFile=c:/path/to/output/multi_page_color.tif^
    -       ### <-- note this! 

Vous souhaitez utiliser le format JPEG? Désolé, il n'existe pas de fichier JPEG multipage. Mais une seule page sans problème:

set outputname=some-uniq-name &&^
gswin32c^
    -dBATCH^
    -dNOPAUSE^
    -dSAFER^
    -sDEVICE=jpeg^
    -dJPEGQ=95^
    -r600x600^
    -sOutputFile=c:/path/to/output/%outputname%-page_%03d.jpeg^
    -       ### <-- note this! 
+0

Merci beaucoup Pipitas c'est beaucoup d'informations pour moi. Votre réponse a donné une très bonne solution détaillée. En ce moment, je suis vos détails et en lire plus sur le ghostscript et Redmon. J'ai quelques problèmes, ils peuvent sembler inappropriés parce que je ne connais pas les processus de traitement des travaux d'impression. Sans convertir en format d'image en utilisant ghostscript, y a-t-il un moyen d'accepter et de transférer directement le travail d'impression vers un autre ordinateur avec une imprimante réelle attachée? Merci encore! – Zerone

+0

Oui, c'est possible. - Cette question est un doublon de "logiciel d'impression et d'acheminement de travaux d'impression" [http://stackoverflow.com/questions/3311565/print-job-accepting-and-routing-software], btw. (et je n'ai pas vraiment remarqué avant). –

+0

@Zerone: voir ma deuxième réponse à votre question dupliquée "Logiciels d'acceptation et d'acheminement des travaux d'impression" (à http://stackoverflow.com/questions/3311565/print-job-accepting-and-routing-software/3421860#3421860) –