loay
asked on
Printers in vb
Hi ,
i have two Printers defined on my PC one of them is set to default ... now please how can i change the printer in my program and prints on the not default printer ...
thanx alot
Loay
i have two Printers defined on my PC one of them is set to default ... now please how can i change the printer in my program and prints on the not default printer ...
thanx alot
Loay
ASKER
am sorry this is not what i want ,, i want it by coding how to change the printer by code ...
thanx alot and sorry
thanx alot and sorry
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Here's the code that handles about 50 different printers around our company. I have stripped out the FAX bit and some extraneous stuff that checks our Oracle database - so there's some extra "Dim's" that you should remove.
It checks the printers in the printers folder and sets the printer object to the one required:
If Not SetPrinter ("DEVELOPERS") Then
"Printer isn't there"
Else
Printer.Font.Size = 20
Printer.Print "This will print on DEVELOPERS"
Printer.EndDoc
Endif
Function SetPrinter(WantPrinter as string) As Boolean
Dim objPrinter As Printer, bQueueExists As Boolean
Dim sFaxNumber As String, sFaxName As String
Dim sSendTime As String, sSendDate As String, sCompany As String
Dim sSubject As String, sKeyword As String, sBillingCode As String
Dim sMode As String, sRecipient As String
Dim sAction As String, SaveErr As Long
Dim PaperBin As Integer
Dim PrinterName As String, Pos As Integer
Dim Copies As Integer
Dim RS As ADODB.Recordset, SQL As String
On Error GoTo SetPrinter_Error
SetPrinter = False
sAction = "Printer"
bQueueExists = False
For Each objPrinter In Printers
' NT can have printers of the name "\\Server\PrinterName". Need to strip off
' the printer name
PrinterName = UCase$(objPrinter.DeviceNa me)
Pos = InStr(PrinterName, "\" & WantPrinter)
If Pos > 0 Then PrinterName = Trim$(Mid$(PrinterName, Pos + 1))
If PrinterName = WantPrinter Then
sAction = "set prt"
' Don't set it if already set
If Printer.DeviceName <> objPrinter.DeviceName Then
Set Printer = objPrinter <= This is the important bit
End If
bQueueExists = True
Exit For
End If
Next objPrinter
If Not bQueueExists Then
sAction = "raise"
Err.Raise 9999, , "Queue " & _
WantPrinter & " does not exist on PC"
Set objPrinter = Nothing
Exit Function
End If
Set objPrinter = Nothing
SetPrinter = True
Exit Function
SetPrinter_Error:
<some error handler as required>
End Function
It checks the printers in the printers folder and sets the printer object to the one required:
If Not SetPrinter ("DEVELOPERS") Then
"Printer isn't there"
Else
Printer.Font.Size = 20
Printer.Print "This will print on DEVELOPERS"
Printer.EndDoc
Endif
Function SetPrinter(WantPrinter as string) As Boolean
Dim objPrinter As Printer, bQueueExists As Boolean
Dim sFaxNumber As String, sFaxName As String
Dim sSendTime As String, sSendDate As String, sCompany As String
Dim sSubject As String, sKeyword As String, sBillingCode As String
Dim sMode As String, sRecipient As String
Dim sAction As String, SaveErr As Long
Dim PaperBin As Integer
Dim PrinterName As String, Pos As Integer
Dim Copies As Integer
Dim RS As ADODB.Recordset, SQL As String
On Error GoTo SetPrinter_Error
SetPrinter = False
sAction = "Printer"
bQueueExists = False
For Each objPrinter In Printers
' NT can have printers of the name "\\Server\PrinterName". Need to strip off
' the printer name
PrinterName = UCase$(objPrinter.DeviceNa
Pos = InStr(PrinterName, "\" & WantPrinter)
If Pos > 0 Then PrinterName = Trim$(Mid$(PrinterName, Pos + 1))
If PrinterName = WantPrinter Then
sAction = "set prt"
' Don't set it if already set
If Printer.DeviceName <> objPrinter.DeviceName Then
Set Printer = objPrinter <= This is the important bit
End If
bQueueExists = True
Exit For
End If
Next objPrinter
If Not bQueueExists Then
sAction = "raise"
Err.Raise 9999, , "Queue " & _
WantPrinter & " does not exist on PC"
Set objPrinter = Nothing
Exit Function
End If
Set objPrinter = Nothing
SetPrinter = True
Exit Function
SetPrinter_Error:
<some error handler as required>
End Function
ASKER
SORRY SIR BUT IT DIDNT BUT THANX FOR TRYING HELPING ME I AM SORRY AGIAN AND THANX ....
p.s : emoreau ANSWER OR THE URL HE GAVE ME IS VERY GOOD ONE
p.s : emoreau ANSWER OR THE URL HE GAVE ME IS VERY GOOD ONE
ASKER
THANX ALOT
You have two choise. Either u can have code option or u can include CommonDialog control in to ur project.
if u want to print directlly from your project with out knowing the user then
Change the current printer
or go to project menu -> then components -> include CommonDialog Control
Create a Command Button say as "Printer Setting" and attached the following code.
CommonDialog1.Showprinter
then the printer list setting would be appear from where user can select printer and all the assoi\ciated setting.