-
Notifications
You must be signed in to change notification settings - Fork 0
/
Out-LabelPrinter.ps1
64 lines (50 loc) · 1.77 KB
/
Out-LabelPrinter.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
param (
[Parameter(Mandatory=$True)][string] $TicketNumber
)
[void][System.Reflection.Assembly]::LoadFile($PSScriptRoot+'\Interop.bpac.dll')
$connectionString = "Data Source=DATASOURCE; " +
"Initial Catalog=DATABASE;" +
"User Id=SQLLoginUsername;" +
"Password=SQLLoginPassword"
$Query = @"
SELECT [_TELMASTE_].[SEQUENCE]
,[DESCRIPTION]
,CONCAT([_CUSTOMER_].[FNAME], ' ', [_CUSTOMER_].[NAME]) as NAME
FROM [TRACKIT].[_SMDBA_].[_TELMASTE_]
LEFT JOIN [_SMDBA_].[_CUSTOMER_] ON [_TELMASTE_].[CLIENT] = [_CUSTOMER_].[SEQUENCE]
WHERE [_TELMASTE_].[SEQUENCE] = $TicketNumber
"@
$connection = new-object system.data.SqlClient.SQLConnection($connectionString)
$command = new-object system.data.sqlclient.sqlcommand($Query,$connection)
$connection.Open()
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataSet) | Out-Null
$connection.Close()
$dataSet.Tables
$Ticket = $dataset.Tables[0]
$Printers = New-Object bpac.PrinterClass
#$Printers.GetInstalledPrinters()
#$Printers.IsPrinterSupported('Brother QL-580N')
#Exit
$Label = New-Object bpac.DocumentClass
$Filename = $PSScriptRoot+'\TicketLabel.lbx'
If ($Label.Open($Filename)) {
$Label.GetObject('Title').Text = $Ticket.SEQUENCE
$Label.GetObject('Name').Text = $Ticket.NAME
$Label.GetObject('Body').Text = $Ticket.DESCRIPTION
try {
# Print Preview:
# $Label.Export(4, ($PSScriptRoot+'\test.bmp'), 180)
$Label.SetPrinter($Printers.GetInstalledPrinters()[0], 0)
$Label.StartPrint('',0)
$Label.PrintOut(1, 0)
$Label.Close()
$Label.EndPrint()
} catch {
Write-Output 'Failed'
Write-Output $Label.ErrorCode
}
} Else {
Write-Output 'Failed to open label file'
}