Accueil > > > SERVEUR D'IMPRESSION POUR IMPRIMER SOUS XP OU VISTA AVEC UNE CANON LBP660 OU AUTRE IMPRIMANTE NON RECONNUE...
SERVEUR D'IMPRESSION POUR IMPRIMER SOUS XP OU VISTA AVEC UNE CANON LBP660 OU AUTRE IMPRIMANTE NON RECONNUE...
Information sur la source
Description
Canon n'ayant pas adapté ses drivers pour la laser LBP660, voici une solution pour partager en réseau une LBP660 (ou une autre imprimante non soutenue) avec d'excellents résultats. C'est un tout petit programme qui tourne sur une machine sous Windows 98 (ou certains XP -> j'ai une machine avec XP Pro qui accepte la LBP660 alors que mes autres XP la refusent). Ecrit en VB2005, PrinterLBP660 ne fait qu'attendre des fichiers "jpeg" sur un certain dossier à définir et les imprime. En amont, sur les autres machines XP ou Vista, il faut installer PDFCreator (logiciel gratuit disponible sur le Net) qui crée un driver d'impression capable de transformer vos sorties d'impression sur tous logiciels en fichiers PDF ou JPEG -> choisir Jpeg sur le dossier défini dans PrinterLBP660. Toute impression vers PDFCreator se fait alors sur la LBP660 !
Source
- 'Créez une Form, nommez-la PrinterLBP660 (ou autre)
- 'Ajoutez-y un Label nommé lblAffichage
- 'Ajoutez-y un FileSystemWatcher nommé FileSystemWatcher1
- 'Et copiez ce code après avoir modifié :
- ' 1/ le dossier (ici "C:\AImprimer") -> il doit exister (pas de traitement d'erreur)
- ' 2/ le nom de l'imprimante (avec le nom donné dans le Panneau de Configuration)
- Imports System.Drawing.Printing
- Imports System.Environment
-
- Public Class PrinterLBP660
- Dim PrintDoc As New PrintDocument()
- Dim FichiersQueue As New Queue(Of String)
-
- Private Sub PrinterLBP660_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- ChDir("C:\AImprimer") ' <--- Modifier en indiquant ici votre dossier d'impression
- AddHandler PrintDoc.PrintPage, AddressOf PrintDocument_PrintPage
- lblAffichage.Text = "Prêt à imprimer"
- End Sub
-
- Private Sub FileSystemWatcher1_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Created
- 'S'il y a détection de la création d'un fichier
- If e.ChangeType = IO.WatcherChangeTypes.Created Then
- Dim NomDuFichier As String = e.Name
- 'tout fichier du nom de "shutdown.txt" quel que soit son contenu (même vide) provoque l'arrêt de Windows
- If NomDuFichier = "shutdown.txt" Then
- lblAffichage.Text = "Arrêt de Windows..."
- lblAffichage.BackColor = Color.Red
- lblAffichage.Refresh()
- 'temporisation de 10 secondes pour être sûr de ne pas l'effacer avant sa fermeture en écriture
- Dim t As DateTime = Now.Add(New TimeSpan(0, 0, 10))
- Do
- If Now > t Then Exit Do
- Loop
- 'on l'efface
- Kill("shutdown.txt")
- Dim osInfo As OperatingSystem = OSVersion
- 'selon la version de Windows
- If osInfo.Platform = PlatformID.Win32Windows Then 'W95/98
- 'pour arrêter Windows98
- Shell("rundll32.exe user.exe,exitwindows")
- Else
- 'pour arrêter XP
- Shell("shutdown -s -t 0")
- End If
- ElseIf NomDuFichier.Substring(NomDuFichier.IndexOf(".") + 1) = "jpg" Then
- lblAffichage.Text = "Impression en cours..."
- lblAffichage.BackColor = Color.Red
- lblAffichage.Refresh()
- FichiersQueue.Enqueue(NomDuFichier)
- PrintDoc.PrinterSettings.PrinterName = "Canon LBP-660" ' <-- Modifier en indiquant ici le nom de votre imprimante
- 'tel qu'il apparait dans le Panneau de Configuration / Imprimantes et Télécopieurs
- 'on commande l'impression
- PrintDoc.Print()
- 'temporisation pour laisser le temps au fichier d'être complétement imprimé et fermé
- Do
- Dim t As DateTime = Now.Add(New TimeSpan(0, 0, 1))
- Do
- If Now > t Then Exit Do
- Loop
- 'toutes les secondes on essaye
- Try
- 'effacement du fichier
- Kill(FichiersQueue.Peek)
- Exit Do
- Catch
- End Try
- Loop
- FichiersQueue.Dequeue()
- lblAffichage.Text = "Prêt à imprimer..."
- lblAffichage.BackColor = Color.GreenYellow
- lblAffichage.Refresh()
- End If
- End If
- End Sub
-
- Private Sub PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
- 'temporisation pour laisser le temps au fichier d'être complétement transféré et fermé
- Do
- Dim t As DateTime = Now.Add(New TimeSpan(0, 0, 1))
- Do
- If Now > t Then Exit Do
- Loop
- 'toutes les secondes on essaye
- Try
- FileOpen(1, FichiersQueue.Peek, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Shared)
- FileClose(1)
- Exit Do
- Catch
- End Try
- Loop
- 'copie du bitmap du fichier-image sur le graphics de l'imprimante
- e.Graphics.DrawImage(New Bitmap(FichiersQueue.Peek), e.Graphics.VisibleClipBounds)
- e.HasMorePages = False
- End Sub
-
- End Class
'Créez une Form, nommez-la PrinterLBP660 (ou autre)
'Ajoutez-y un Label nommé lblAffichage
'Ajoutez-y un FileSystemWatcher nommé FileSystemWatcher1
'Et copiez ce code après avoir modifié :
' 1/ le dossier (ici "C:\AImprimer") -> il doit exister (pas de traitement d'erreur)
' 2/ le nom de l'imprimante (avec le nom donné dans le Panneau de Configuration)
Imports System.Drawing.Printing
Imports System.Environment
Public Class PrinterLBP660
Dim PrintDoc As New PrintDocument()
Dim FichiersQueue As New Queue(Of String)
Private Sub PrinterLBP660_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ChDir("C:\AImprimer") ' <--- Modifier en indiquant ici votre dossier d'impression
AddHandler PrintDoc.PrintPage, AddressOf PrintDocument_PrintPage
lblAffichage.Text = "Prêt à imprimer"
End Sub
Private Sub FileSystemWatcher1_Created(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Created
'S'il y a détection de la création d'un fichier
If e.ChangeType = IO.WatcherChangeTypes.Created Then
Dim NomDuFichier As String = e.Name
'tout fichier du nom de "shutdown.txt" quel que soit son contenu (même vide) provoque l'arrêt de Windows
If NomDuFichier = "shutdown.txt" Then
lblAffichage.Text = "Arrêt de Windows..."
lblAffichage.BackColor = Color.Red
lblAffichage.Refresh()
'temporisation de 10 secondes pour être sûr de ne pas l'effacer avant sa fermeture en écriture
Dim t As DateTime = Now.Add(New TimeSpan(0, 0, 10))
Do
If Now > t Then Exit Do
Loop
'on l'efface
Kill("shutdown.txt")
Dim osInfo As OperatingSystem = OSVersion
'selon la version de Windows
If osInfo.Platform = PlatformID.Win32Windows Then 'W95/98
'pour arrêter Windows98
Shell("rundll32.exe user.exe,exitwindows")
Else
'pour arrêter XP
Shell("shutdown -s -t 0")
End If
ElseIf NomDuFichier.Substring(NomDuFichier.IndexOf(".") + 1) = "jpg" Then
lblAffichage.Text = "Impression en cours..."
lblAffichage.BackColor = Color.Red
lblAffichage.Refresh()
FichiersQueue.Enqueue(NomDuFichier)
PrintDoc.PrinterSettings.PrinterName = "Canon LBP-660" ' <-- Modifier en indiquant ici le nom de votre imprimante
'tel qu'il apparait dans le Panneau de Configuration / Imprimantes et Télécopieurs
'on commande l'impression
PrintDoc.Print()
'temporisation pour laisser le temps au fichier d'être complétement imprimé et fermé
Do
Dim t As DateTime = Now.Add(New TimeSpan(0, 0, 1))
Do
If Now > t Then Exit Do
Loop
'toutes les secondes on essaye
Try
'effacement du fichier
Kill(FichiersQueue.Peek)
Exit Do
Catch
End Try
Loop
FichiersQueue.Dequeue()
lblAffichage.Text = "Prêt à imprimer..."
lblAffichage.BackColor = Color.GreenYellow
lblAffichage.Refresh()
End If
End If
End Sub
Private Sub PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
'temporisation pour laisser le temps au fichier d'être complétement transféré et fermé
Do
Dim t As DateTime = Now.Add(New TimeSpan(0, 0, 1))
Do
If Now > t Then Exit Do
Loop
'toutes les secondes on essaye
Try
FileOpen(1, FichiersQueue.Peek, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Shared)
FileClose(1)
Exit Do
Catch
End Try
Loop
'copie du bitmap du fichier-image sur le graphics de l'imprimante
e.Graphics.DrawImage(New Bitmap(FichiersQueue.Peek), e.Graphics.VisibleClipBounds)
e.HasMorePages = False
End Sub
End Class
Conclusion
C'est une solution fonctionnelle pour partager une "vieille imprimante" qui fonctionne encore mais n'est plus soutenue sous XP ou Vista à condition de disposer du "vieux PC" avec le bon driver qui l'utilisait, en mettant le tout en réseau... Avec mes 4 ordinateurs sous XP (1 seul acceptant la LBP660 et 3 autres à divers endroits de la maison) je peux imprimer depuis l'un quelconque d'entre eux au choix en laser couleurs sur une HP2600N (Bien sûr, après ce tour joué par Canon, je n'avais plus envie d'investir dans une marque incapable d'assurer la compatibilité ascendante de ses drivers) ou sur ma bonne vieille laser N&B Canon LBP660 qui fonctionne encore très bien. Les fichiers créés sur le dossier choisi sont automatiquement effacés et l'écriture d'un fichier nommé "shutdown.txt" sur le même dossier éteint l'ordinateur "serveur d'impression"...
Fichier Zip
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Tester si l imprimante est prête [ par Mitch ]
J aimerais, avant de lancer une impression, tester que la printeuse est bien online. J ai fouiné dans les APIs mais pas moyen de trouver; à part qq fo
Code spécifique d'imprimante en Visual Basic [ par Pierre ]
Est-il possible en Visual Basic d'envoyer directement des codes de contrôles spécifiques à une imprimante? Je pense particulièrementà la modification
config imprimante [ par bertrand ]
je cherche à modifier par programme (VB6.0)les paramètres par défaut d'une imprimante.
Qualité d'impression [ par Raynald ]
Bonjour, j'utilise VB6 avec une imprimante matricielle Epson LQ2550.Depuis que j'ai installé Windows 98, l'imprimante passe 2 fois sur la même ligne
Urgent : ajout d'une imprimante avec l'API AddPrinter [ par Cedric_Malache ]
Je voudrais ajouter une nouvelle imprimante garce a l'api AddPrinter: Voici la déclaration de l'api en C:
Liste imprimante!!! [ par Le J ]
Salut,Comment optenir la liste des imprimantes installés sur mon ordinateurs????MerciALPLe J
Vb, Access et imprimante!! [ par Le J ]
Salut,Je veux changer d'imprimante avant de faire imprimer un état sous access (a partir de vb) et cela ne fonctionne pas!!! Ca fonctionne avec print
Imprimante.... [ par RVTT ]
Bonjour,Est-il possible d'imprimer en mode text sous VB (Comme sous dos...)Si oui comment ?
Changer imprimante!!! URGENT [ par Le J ]
Salut,Je veux changer d'imprimante lorsue je vais imprimer un état dans access a partir de VB!!! La fonction Set Printer = Printer(no de l'imprimante
IMPRESSION ET DATAREPORT [ par chandrasonic ]
SalutJ'ai un probleme :Je voudrais choisir une imprimante autre que celle definie par defaut.Avec set printer=printer(i) par de probleme j'arrive a se
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Magic
Entre 429€ et 429€
|