12
votes

Comment créer son propre pilote d'imprimante XP

Comment créerai mon propre pilote d'imprimante XP qui fera les suivantes:

  • imprimer pour fichier (probablement xps format)
  • mettre ce fichier dans un mot de passe Fichier zip protégé
  • Email le fichier zip sur un fichier configuré Adresse e-mail

0 commentaires

4 Réponses :


3
votes

Bien que je ne puisse proposer aucun conseil spécifique, si je voulais faire ce que vous décrivez, la première chose que je ferais est de lire à travers la source pour pdfcreator - c'est un pilote imprimé Windows qui peut cracher des PDF.



18
votes

Ce dont vous avez besoin n'est pas un pilote d'imprimante. On l'a nommé Impression Moniteur . C'est une DLL, qui sera chargée dans le processus spouoler.exe. La DLL donne le spouleur à la phase d'initialisation d'un nom logique de ports tels que LPT1 :, fichier :, SPSPORT: etc. L'OptPut préparé avec un pilote d'imprimante doit être envoyé de quelque manière que ce soit à un périphérique de destination. Ce travail imprime des moniteurs comme "Port TCP / IP standard" ou "Port local".

Pour écrire un moniteur d'imprimante, vous devez télécharger et installer Windows Driver Kit (WDK ou quelque temps DDK Voir http://www.microsoft.com/whdc/devtools/wdk/default.mspx ). Plus d'informations sur l'écriture de l'imprimante moniteur voir http: // msdn .microsoft.com / fr-US / Bibliothèque / FF563806 (v = vs.85) .aspx . Imprimer moniteur est une DLL avec une fonction exportée (voir http : //msdn.microsoft.com/en-us/library/ff549405 (v = vs.85) .aspx ). Je vous recompose pour commencer avec la modification de l'exemple de moniteur local Exemple de lockmon, quelle source complète vous trouvez après l'installation de WDK (voir http://msdn.microsoft.com/en-us/library/ff556478 (v = vs.85) .aspx ).

Le problème le plus pratique avec l'écriture de l'imprimante moniteur est nécessaire d'écrire une DLL multithreadiée réelle. Vous devez être très soigné, comprendre et utiliser Entriticalsection dans toutes vos fonctions. Pour le débogage du moniteur d'imprimante, vous devez connecter Visual Studio Debugger au spouleur de processus. Le reste est le même que l'écriture d'une DLL Windows Win32 / Win64 standard en cours d'exécution.

mis à jour : une plus petite remarque. Si vous ne voulez pas que le pilote d'imprimante ne soit rien avec les données envoyées à l'imprimante, vous pouvez utiliser un pilote d'imprimante générique. Vous le trouverez sous la fabrication "générique", imprimante avec le nom "générique / texte uniquement". Examinez certains paramètres de pilote que vous avez (comme CR LF Paramètres)


5 commentaires

C'est la bonne réponse, j'ai fait des choses comme ça. Mais vous NE PAS Vous voulez faire plus que nécessaire dans le processus de spouleur: après avoir saisi les données, démarrez un nouveau processus qui fait la zippation et le courrier électronique.


@gunin: bonne suggestion de faire un travail plus complexe dans un processus distinct! J'ai également écrit il y a plusieurs années un moniteur d'impression et je peux dire que le problème le plus complexe consiste à déboguer dans un environnement multi-utilisateurs multi-threads. Le démarrage des processus distincts peut faciliter le débogage.


Tous les liens de cet article sont morts. Toute mise à jour possible?


@ATATAQUE: La version actuelle de WDK peut être téléchargée à partir de ici . La documentation du moniteur d'impression est actuellement Ici . La référence sur l'exemple localmon dans WDK est Ici . Les liens peuvent être cassés de cause quelques années plus tard. On ne peut que rechercher sur Internet pour la terminologie (comme «moniteur d'imprimante» ou «moniteur de port») que j'ai utilisé dans ma réponse.


Les liens sont à nouveau opérationnels. Peut avoir été ma connexion. Je m'excuse.



2
votes

combiner ces programmes, premier CPRI (pour l'accès à votre code à un périphérique d'imprimante)

C'est en langage C

http://sourceforge.net/projects/cpri/

alors vous pouvez utiliser

http://sourceforge.net/projects/pdfcreate

Pour obtenir une imprimante virtuelle pour générer le format PDF, XPS Format Sortie


0 commentaires

0
votes

J'ai trouvé une bonne procédure à suivre pendant la chasse pour la même chose:

"Création d'une imprimante PostScript virtuelle dans Windows à l'aide de Ghostscript"

http://www.stat.tamu.edu/~henrik /Gspsprinter/gspsprinter.html

Les périphériques de sortie pris en charge par Ghostscript sont ici: http://pages.cs.wisc.edu/~ghost/ doc / cvs / dispositifs.htm (PDF, PostScript, PNG, etc.).

Exemple d'imprimante de redirection à un programme - Utilisation du tutoriel


0 commentaires