-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPrinterAPI.cs
59 lines (52 loc) · 1.94 KB
/
PrinterAPI.cs
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
using System;
using System.Windows.Forms;
using bpac;
namespace BpacBarcode
{
class PrinterApi
{
private readonly string _title;
private readonly string _barcode;
private readonly string _timestamp;
private readonly int _count;
private const string TimestampFormat = "dd.MM.yyyy HH:mm";
public PrinterApi(string title, string barcode, string timestamp = null, int count = 1)
{
_title = title;
_barcode = barcode;
_timestamp = DateTime.Now.ToString(TimestampFormat);
if (timestamp != null)
{
try
{
_timestamp = DateTime.Parse(timestamp).ToString(TimestampFormat);
}
catch (Exception)
{
// ignored
}
}
_count = count;
}
public int Print()
{
var doc = new DocumentClass();
var templatePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\" + doc.Printer.GetMediaId().ToString() + ".lbx";
if (doc.Open(templatePath))
{
doc.GetObject("title").Text = _title;
doc.GetObject("barcode").Text = _barcode;
doc.GetObject("timestamp").Text = _timestamp;
// ReSharper disable once BitwiseOperatorOnEnumWithoutFlags
PrintOptionConstants printOptions = PrintOptionConstants.bpoAutoCut | PrintOptionConstants.bpoQuality;
doc.StartPrint("", printOptions);
doc.PrintOut(_count, printOptions);
doc.EndPrint();
doc.Close();
return doc.ErrorCode;
}
MessageBox.Show(@"Open() Error: " + doc.ErrorCode + @"Media ID" + doc.Printer.GetMediaId().ToString());
return doc.ErrorCode;
}
}
}