J'aimerais pouvoir spécifier deux imprimantes différentes pour deux tâches différentes. J'utilise la classe suivante pour gérer l'impression de ceux-ci, mais indépendamment de ce que je fais, l'imprimante par défaut est toujours celle qui est imprimée.Comment puis-je spécifier une imprimante autre que l'imprimante par défaut?
Public Class Receipt : Inherits Printing.PrintDocument
Private _font As Font = New Font("Courier", 8)
Private _text As String = ""
Public Property Text() As String
Get
Return _text
End Get
Set(ByVal Value As String)
_text = Value.Trim
End Set
End Property
Public Sub New(ByVal str As String, ByVal settings As Printing.PrinterSettings)
MyBase.New()
_text = str
Me.PrinterSettings = settings
End Sub
Protected Overrides Sub OnPrintPage(ByVal e As Printing.PrintPageEventArgs)
Dim printHeight As Integer
Dim printWidth As Integer
Dim leftMargin As Integer
Dim rightMargin As Integer
With Me.DefaultPageSettings
.PaperSize = New System.Drawing.Printing.PaperSize("Custom", 300, 1200)
.Margins.Left = 25
.Margins.Right = 25
printHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom
printWidth = .PaperSize.Width - .Margins.Left - .Margins.Right
leftMargin = .Margins.Left
rightMargin = .Margins.Top
End With
Dim printArea As New RectangleF(leftMargin, rightMargin, printWidth, printHeight)
Dim format As New StringFormat(StringFormatFlags.LineLimit)
Try
e.Graphics.DrawString(_text, _font, Brushes.Black, printArea, format)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
Si j'inspecter mon PrinterSettings attribut immédiatement avant l'appel à cordonnet, l'attribut PrinterName est toujours correctement réglé sur l'imprimante je précise, mais il est toujours l'imprimante par défaut qui démarre le travail. Je suis sûr que je manque quelque chose d'évident, mais j'apprécierais certainement si quelqu'un pourrait indiquer ce que c'est. :)
Merci
Je suis certainement déconcerté. Avant de quitter le bureau le vendredi, j'avais mis des drapeaux pour vérifier que PrinterSettings.IsValid revenait vrai, et en effet il l'a fait, mais le problème persiste. Maintenant, comme je viens lundi matin, je l'ai essayé à nouveau en lisant votre confirmation et celle de Thorarin, à savoir que ce que j'ai fait devrait fonctionner, et faible, et c'est ce qu'il fait. Je ne sais pas ce qui était différent le vendredi, mais merci de m'avoir confirmé que j'étais sur la bonne voie et m'empêchant d'emprunter des chemins que je n'avais pas besoin de descendre. :) – Blumer