分析BarTender的SDK帮助⽂档
传送门
许多朋友不知道SDK的使⽤⼿册怎么获取,答案如下:
安装Bartender试⽤版,到开始⽬录下可以看到
分析BarTender的SDK帮助⽂档
⼀、SDK使⽤
SDK的内容分四部分:
Librarian API:版本管理系统,可以控制⽂件回滚、签⼊签出、显⽰⽂件信息等。
Print Engine API:客户端打印系统。管理打印机列表、打开关闭标签模版、合并标签数据、启动打印、监控打印状态。
Print Server API:服务器端打印系统,⾃带队列管理机制。
System Database API:系统数据库管理系统。
暂时只需要客户端打印系统,研究简单的打印模式。
1.1、Creating a BarTender Print Engine
最开始时需要创建⼀个Engine对象,然后启动,打开⽂件,打印,停⽌,释放资源。
// Initialize a new BarTender print engine.
using(Engine btEngine =new Engine())
{
// Start the BarTender print engine.
btEngine.Start();
// Open a format.
LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\Format1.btw");
// Print the format.
btFormat.Print();
// Stop the BarTender print engine.
btEngine.Stop();
}
/
/ Initialize a new BarTender print engine.
using(Engine btEngine =new Engine())
{
// Start the BarTender print engine.
btEngine.Start();
// Open a format.
LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\Format1.btw");
// Print the format.
btFormat.Print();
// Stop the BarTender print engine.
btEngine.Stop();
}
特性:
可以控制主程序的启动与停⽌
可以打开、访问、保存标签模板
可以监控打印事件
可以控制APP窗⼝
1.1.1、如何开始和停⽌⼀个Engine类:
创建时启动
构造时传⼊参数true,隐式启动:
new Engine(true)
创建后某个时刻触发启动
默认构造,再显式启动:
Engine btEngine = new Engine()
btEngine.Start()
停⽌时不保存修改
btEngine.Stop()
停⽌时保存修改
btEngine.Stop(SaveOptions.SaveChanges)
退出时,释放资源:
btEngine .Dispose()
默认地,Bartender进程运⾏在幕后,若想显⽰Bartender软件的交互窗⼝:
btEngine.Window.Visible = true
1.2、Working with Print Job Status Events
当Engine引擎被启动时,就会监控打印状态。Engine类的evevts,存放着事件处理函数的指针,可以触发多个回调函数。
// Hook up to job cancelled event.
btEngine.JobCancelled +=new EventHandler<PrintJobEventArgs>(btEngine_JobCancelled);
btEngine.JobErrorOccurred +=new EventHandler<PrintJobEventArgs>(btEngine_JobErrorOccurred);
btEngine.JobMonitorErrorOccurred +=new EventHandler<MonitorErrorEventArgs>(btEngine_JobMonitorErrorOccurred);
btEngine.JobPaused +=new EventHandler<PrintJobEventArgs>(btEngine_JobPaused);
btEngine.JobQueued +=new EventHandler<PrintJobEventArgs>(btEngine_JobQueued);
btEngine.JobRestarted +=new EventHandler<PrintJobEventArgs>(btEngine_JobRestarted);
btEngine.JobResumed +=new EventHandler<PrintJobEventArgs>(btEngine_JobResumed);
btEngine.JobSent +=new EventHandler<JobSentEventArgs>(btEngine_JobSent);
详细内容暂时跳过
1.3、Working with Label Formats
LabelFormatDocument类
标签模版类,该类的实例对象代表.btw⽂件,⽤户可以通过该类对标签模板进⾏修改和打印。另外,每⼀个Engine对象都包含了⼀系列打开的.btw⽂件,简称⽂件集(The Documents Collection)。
可以打开、关闭、打印、保存、激活标签模板
可以访问标签模版的名字、打印机信息、字串等属性
可以修改标签模板中的字串
可以设定打印数量
可以选择打印机打印或打印在⽂件中
可以监控打印状态
LabelFormat 是LabelFormatDocument的⽗类
LabelFormat 作⽤体现在:创建LabelFormatDocument对象之前,可以先使⽤LabelFormat预设属性,然后使⽤LabelFormat作为参数调⽤拷贝构造来构建LabelFormatDocument对象。
打开⼀个.btw⽂件:
LabelFormatDocument btFormat = btEngine.Documents.Open(@"c:\MyLabel.btw");
关闭⼀个.btw⽂件,为节省资源,最好是⽤完即关闭:
btFormat.Close(SaveOptions.DoNotSaveChanges);
1.4、Printing Label Formats
通过调⽤LabelFormatDocument类的打印⽅法可以打印标签模板
1.4.1public Result Print()
Result是⼀个enum类型,Success=0,Timeout=1,Failure=2
LabelFormatDocument btFormat = btEngine.Documents.Open(@"c:\MyLabel.btw");
Result result = btFormat.Print();
// Display the print result.
Console.WriteLine("Print status = "+ nResult);
1.4.2、public Result Print( string printJobName)
参数:printJobName,打印任务名,如果为空,则会使⽤标签模板名
返回值:Result是⼀个enum类型,Success=0,Timeout=1,Failure=2
1.4.3、Print(string printJobName, out Messages message)
Messages messages =null;
LabelFormatDocument btFormat = btEngine.Documents.Open(@"c:\MyLabel.btw");
Result result = btFormat.Print("PrintJob1",out messages);
参数:printJobName,打印任务名,如果为空,则会使⽤标签模板名
参数:messages,传⼊时是空的消息集合,返回时被函数内部填充,每⼀次打印都会在Message对象的text属性中写⼊内容。Messages 类是⼀个集合类型,集合中的元素是Message类。
返回值:Result是⼀个enum类型,Success=0,Timeout=1,Failure=2
1.4.4、Print(string printJobName, int waitForCompletionTimeout)
参数:printJobName,打印任务名,如果为空,则会使⽤标签模板名
参数:waitForCompletionTimeout,打印超时时间,ms单位
返回值:Result是⼀个enum类型,Success=0,Timeout=1,Failure=2
1.4.5、Print(string printJobName, int waitForCompletionTimeout, out Messages messages)
参数:printJobName,打印任务名,如果为空,则会使⽤标签模板名
参数:messages,传⼊时是空的消息集合,返回时被函数内部填充,每⼀次打印都会在Message对象的text属性中写⼊内容。Messages 类是⼀个集合类型,集合中的元素是Message类。
参数:waitForCompletionTimeout,打印超时时间,ms单位
sdk返回值:Result是⼀个enum类型,Success=0,Timeout=1,Failure=2
enum类
enum类型,Success=0,Timeout=1,Failure=2
Message类
存放消息,包括正常消息、警告、错误消息。成员有:
Category:消息种类
ID:消息ID
Severity:严重性
Source:源
Text:描述消息内容
Verification:错误或故障相关处理
Messages类
消息集合,成员有:
Count:计数器
HasError:判断是否包含错误消息
Item:调取某个消息
Add:添加消息
1.4.6、⼀次打印多个不同标签时
假设⼀个Engine对象中打开了多个LabelFormatDocument对象,⼀次性全部打印:
int i =0;
foreach(LabelFormatDocument format in btEngine.Documents)
{
i++;
format.Print("PrintJob"+ i);
}
1.4.7、打印⼀系列标签时
btFormat.PrintSetup.NumberOfSerializedLabels:规定了序列长度
btFormat.PrintSetup.IdenticalCopiesOfLabel:规定了重复次数
// Initialize and start a new engine
using(Engine btEngine =new Engine())
{
btEngine.Start();
// Open a label format.
LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\MyLabel.btw");
// Change the number of identical labels and serialized labels to print
btFormat.PrintSetup.NumberOfSerializedLabels =4;
btFormat.PrintSetup.IdenticalCopiesOfLabel =10;
// Print the label
Result result = btFormat.Print();
}
1.4.8、配置打印机
打开标签模版时配置打印机
或给标签模版的成员属性PrinterName 配置打印机
/
/ Initialize and start a new engine
using(Engine btEngine =new Engine())
{
btEngine.Start();
// Open a label format specifying the default printer
LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\MyLabel1.btw");
// Print the label
Result result = btFormat.Print("PrintJob1");
// Open a label format specifying a different printer
btFormat = btEngine.Documents.Open(@"C:\MyLabel2.btw","OurPrinter_HX3000");
// Print the label
result = btFormat.Print();
/*
// Change the name of the printer
btFormat.PrintSetup.PrinterName = @"OurPrinter_HX3000";
*/
}
1.5、Changing Text and Barcode Data on the Label Format
读取和修改标签模板的内容,没有新建的⽅法
每个标签模板包含⼀系列的字段,这些字段类似于python中的字典,具备键值对。1.5.1、/* 读取 */
Engine btEngine =new Engine();
LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\MyLabel.btw");
string AddressSubstring = btFormat.SubStrings["Address"].Value;
1.5.2、/* 修改 */
Engine btEngine =new Engine();
LabelFormatDocument btFormat = btEngine.Documents.Open(@"c:\MyLabel.btw"); btFormat.SubStrings["Address"].Value ="1313 Mockingbird Lane, Anywhere, USA"; btFormat.SubStrings["Name"].Value ="John Doe";
btFormat.SubStrings["Quantity"].Value ="10";
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论