L'écriture d'une Imprimante Virtuelle dans .NET
Je suis à la recherche pour créer une imprimante virtuelle qui transmet les données à mon .NET application. Je veux créer un programme d'installation qui installe l'imprimante et l' .NET application. Il nous serait très agréable d'être en mesure d'écrire tout en C#, mais j'ai le sentiment que cela nécessitera un pilote d'imprimante à être écrite, le code non managé. Personne ne sait d'une assez propre tutoriel ou un exemple de comment faire cela?
Vous devez vous connecter pour publier un commentaire.
Visite http://www.printerplusplus.com. Il est open source .NET imprimante virtuelle. Il vous donne un installateur et un .NET de la classe pour écrire le code pour le traitement de votre imprimante "données".
Fait exactement ce que vous demandez l'aide de le projet Github: Microsoft/Windows-pilote-échantillons/imprimer/XPSDrvSmpl
https://github.com/Microsoft/Windows-driver-samples/tree/master/print/XPSDrvSmpl
Installateur: http://wixtoolset.org/
Application: Écouter port interne
Flux: Installer l'imprimante et de l'application à partir d'un seul programme d'installation. L'utilisateur imprime quelque chose avec votre pilote lors de l'application écoute le port interne. Lorsque des données sont envoyées à l'application ramasse. C'est pour XPS, peuvent être convertis en PDF, mais le débit est semblable, peu importe ce que vous imprimez. Si vous avez besoin de rien d'autre découvrez Microsoft/Windows-pilote-échantillons/imprimer/sur GitHub ou d'autres sources spécifiques à vos besoins.
Mise à jour:
Beaucoup de questions sur la façon d'obtenir le pilote de travail donc, voici un exemple rapide:
Commencez par télécharger Windows Driver Kit (WDK) si vous ne l'avez pas déjà installé. Lors de l'installation choisir d'ajouter l'extension pour Visual Studio, dans l'étape finale. Dans votre Visual Studio 2017 Installation, vous devez avoir
Desktop development with C++
d'avoir le droit de Kits de développement logiciel. Si vous ne l'avez pas, voir la anser ci-dessous sur la façon d'ajouter.Comment puis-je ajouter des fonctionnalités de Visual Studio 2017?
https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit
Puis télécharger le
.zip
fichier pour Windows-pilote-échantillons de maître:https://github.com/Microsoft/Windows-driver-samples/archive/master.zip
Accédez au dossier
<UnzipFolder>\print\XPSDrvSmpl
et ouvrirXPSDrvSmpl.sln
dans Visual Studio.Puis suivez les directives de Microsoft propre guide sur GitHub. Comme vous pouvez le voir c'est pour Visual Studio 2015, mais je pense que c'est la même chose pour 2017 (pas encore testé):
De construire une solution pour le pilote à l'aide de Windows Driver Kit (WDK) 10 et de Visual Studio 2015, effectuez les étapes suivantes.
de l'échantillon) pour le Package de projet: un. Dans l'Explorateur de solutions,
cliquez-droit sur les Fichiers de Pilote. b. Sélectionnez Ajouter, puis cliquez sur un Élément Existant. c.
Accédez à l'emplacement où vous avez téléchargé l'échantillon, et
sélectionnez tous les fichiers dans le répertoire d'installation, ou l'équivalent
de non-fichiers binaires tels que les INFs, INIs, GPD, les fichiers PPD, etc. d.
Cliquez Sur Ajouter
L'Explorateur de solutions, cliquez du bouton droit sur la solution et choisir Ajouter > Nouveau
Projet. Choisir le Pilote à Installer le Paquet sous Visual C++/Windows
Conducteur/Paquet. b. Dans l'Explorateur de solutions, cliquez-droit sur le Package
projet et sélectionnez Propriétés. c. Dans le volet de gauche, cliquez sur
Propriétés de Configuration > Installer le Pilote > Fichiers de Package. d. Dans le
volet de droite, utilisez le bouton points de suspension (...) pour accédez à l'ensemble de
les fichiers qui doit être ajouté sur le package du pilote. Toutes les données
les fichiers que vous avez ajouté à l'Étape 2-c, à l'exception du fichier INF, devrait être
ajouté. Cette configuration est par l'architecture, afin que cette configuration
doit être répété pour chaque architecture qui seront construits. e. Cliquez sur
OK.
Fichier INF. b. Dans la Version de l'article, ajouter une référence à un catalogue
fichier comme ceci: CatalogFile=XpsDrvSmpl.cat. c. Dans le
SourceDisksFiles section, modifier l'emplacement des fichiers DLL vous
sont bâtiment de, pour =1. Cela indique qu'il n'existe pas d'architecture
répertoire spécifique dans ce pilote. Si vous expédiez plusieurs
architectures en même temps, vous aurez besoin de rassembler le pilote
INF manuellement.
À ce point, Visual Studio 2015 sera en mesure de construire un package de pilotes et de sortie les fichiers sur le disque. Afin de configurer la signature du pilote et déploiement, consultez le Développement, l'Essai et le Déploiement des Pilotes.
https://github.com/Microsoft/Windows-driver-samples/tree/master/print/XPSDrvSmpl#build-the-sample
Je pense que vous aurez à faire beaucoup de WinAPI de l'emballage. Commencer des recherches
sur Windows Driver Kit De Développement pour trouver les choses que vous avez à faire.
J'ai également trouvé ce commercial Pilote D'Imprimante Ressource Boîte À Outils pour .NET...
Vous pouvez tout simplement votre application exposer lui-même comme un LPD de type imprimante ou un moniteur de port 9100. Vous pourriez alors installer un pilote d'impression que vous aimez, et point de un votre application.
A la recherche d'une réponse à la même question, et j'ai trouvé ce lien par Wikipédia - http://www.colorpilot.com/emfprinterpilot.html (permet de créer des Imprimantes Virtuelles dans des langues différentes)
Pourquoi ne pas envisager d'utiliser une approche alternative. Comme à l'aide d'un intermédiaire, prêt à l'impression du programme, tels que ceux disponibles gratuitement Imprimer vers PDF application. Ensuite, tous vous avez besoin est de décoder des fichiers PDF à l'aide de quelques la 3e partie de la bibliothèque (qui est gratuit et opensource, la variance trop) au lieu de casser votre tête de réinventer la roue. Il y a d'autres d'Impression-pour-XXX application qui vous pourriez aussi envisager selon le format que vous voyez l'ajustement.
Je ne pense pas l'interprétation PDF approche est tout bon, soit. Je ne sais pas pourquoi vous voulez faire ce que vous voulez faire. Peut-être que vous êtes en train d'écrire une imprimante PDF de votre propre.
Je pense que vous devriez vraiment donner le Développement de Pilote Windows chose un coup d'oeil. Si vous souhaitez développer un pilote d'imprimante, je pense que vous aurez à le faire en C++.
Bonne Chance.
Si je me souviens bien, Microsoft ne prend pas en charge .NET dans le pilote d'imprimante de développement. Je n'ai pas encore rencontré un pur .NET pilote d'imprimante. Vous serez un homme très courageux de le faire! Le site "Pilote d'Imprimante Ressource boîte à outils" ne veut pas dire que le pilote a été écrit dans .NET