分析BarTender的SDK帮助文档

时间:2024-11-21 09:06:38

传送门
python集成Bartender的雏形
python写上位机(集成Bartender)


许多朋友不知道SDK的使用手册怎么获取,答案如下:
安装Bartender试用版,到开始目录下可以看到
在这里插入图片描述

分析BarTender的SDK帮助文档

  • 一、SDK使用
    • 1.1、Creating a BarTender Print Engine
      • 1.1.1、如何开始和停止一个Engine类:
    • 1.2、Working with Print Job Status Events
    • 1.3、Working with Label Formats
    • 1.4、Printing Label Formats
      • 1.4.1public Result Print()
      • 1.4.2、public Result Print( string printJobName)
      • 1.4.3、Print(string printJobName, out Messages message)
      • 1.4.4、Print(string printJobName, int waitForCompletionTimeout)
      • 1.4.5、Print(string printJobName, int waitForCompletionTimeout, out Messages messages)
      • 1.4.6、一次打印多个不同标签时
      • 1.4.7、打印一系列标签时
      • 1.4.8、配置打印机
    • 1.5、Changing Text and Barcode Data on the Label Format
      • 1.5.1、/* 读取 */
      • 1.5.2、/* 修改 */
    • 1.6、Automating Database Printing
    • 1.7、Working with Print Job Status Events
      • 1.7.1、订阅Job Status Events
      • 1.7.2、处理Job Status Events
      • 1.7.3、Handler处理函数的第二个参数
      • 1.7.4、事件events
        • 1.7.4.1、Engine Events
        • 1.7.4.2、LabelFormatDocument Event
    • 1.8、Printing Label Formats to a File
  • 二、几个重要类的特性
    • 2.1、Engine类
      • 类成员:
    • 2.2、LabelFormatDocument类
      • 类成员
    • 2.3、PrintSetup类
      • 类成员
    • 2.4、Substring类
      • 类成员

一、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:\");
      // 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:\");
      // 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:\");
关闭一个.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:\");
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:\");
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单位

返回值: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、打印一系列标签时

:规定了序列长度
:规定了重复次数
在这里插入图片描述

// Initialize and start a new engine 
using (Engine btEngine = new Engine()) 
{ 
btEngine.Start();
// Open a label format. 
LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\");
// 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:\");
// Print the label 
Result result = btFormat.Print("PrintJob1");
// Open a label format specifying a different printer 
btFormat = btEngine.Documents.Open(@"C:\", "OurPrinter_HX3000");
// Print the label 
result = btFormat.Print(); 
/*
// Change the name of the printer 
 = @"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:\");
string AddressSubstring = btFormat.SubStrings["Address"].Value; 

1.5.2、/* 修改 */

Engine btEngine = new Engine(); 
LabelFormatDocument btFormat = btEngine.Documents.Open(@"c:\");
btFormat.SubStrings["Address"].Value = "1313 Mockingbird Lane, Anywhere, USA"; 
btFormat.SubStrings["Name"].Value = "John Doe"; 
btFormat.SubStrings["Quantity"].Value = "10";

/*
[“Quantity”].Value = “10”;
"Quantity"就是键(key),"10"就是值(value),通过键能够调出值的内容
*/

1.6、Automating Database Printing

数据库打印,暂时跳过

1.7、Working with Print Job Status Events

Job Status Events依赖于Maestro Print Service监控程序。

LabelFormatDocument类与Engine类还有Printer类等等,许多类型都有相应的事件Event。下面具体研究 Engine 与 LabelFormatDocument 类的Event机制,其他类大同小异,暂时略过。

1.7.1、订阅Job Status Events

订阅,类似于信号绑定。将处理函数的指针推入列表的相应位置。

// Open a label format 
LabelFormatDocument btFormat = btEngine.Documents.Open(@"c:\");
// Subscribe to the format event 
btFormat.JobQueued += new EventHandler<PrintJobEventArgs>(MyLabelFormatOnJobQueued);

/* 订阅了JobQueued事件,MyLabelFormatOnJobQueued为事件处理函数 */

1.7.2、处理Job Status Events

针对Engine类,有以下程序:

// Called by a worker thread when a job is queued 
public void btEngine_JobQueued(object sender, PrintJobEventArgs e) 
{ 
	// 类型转换,将基类对象转换成子类对象
	Engine btEngine = sender as Engine; 
	if (btEngine != null) 
	{ 
	Console.WriteLine(string.Format("Client {0} has printed or is printing {1} jobs", e.ClientName, btEngine.PrintJobCounter)); 
	} 
}

btEngine_JobQueued是回调函数名,与订阅时的函数相对应。

参数:sender,当一个打印事件被推入打印队列时,假若该打印事件对应的Engine对象或LabelFormatDocument对象曾经订阅过JobQueued类型的事件,那么这些对象就会作为sender参数。

参数:PrintJobEventArgs,打印事件的相关信息。

上例代表了一个Engine对象调用btEngine_JobQueued的场景。

针对LabelFormatDocument类,有以下程序:

public void ProgramModule() 
{ 
	// Initialize and start a BarTender Engine 
	using (Engine btEngine = new Engine(true)) 
	{ 
	// Open a label format 
	LabelFormatDocument btFormat = btEngine.Documents.Open(@"c:\");
	// Subscribe to the format event 
	btFormat.JobQueued += new EventHandler<PrintJobEventArgs>(MyLabelFormatOnJobQueued);
	// Print the label 
	btFormat.Print();
	// Stop the BarTender Engine 
	btEngine.Stop(SaveOptions.DoNotSaveChanges); 
	} 
}
public void MyLabelFormatOnJobQueued(object sender, PrintJobEventArgs printJobEventInfo) 
{ 
	// 类型转换,将基类对象转换成子类对象
	LabelFormatDocument btFormat = sender as LabelFormatDocument;
	// Check to see if the object is not null 
	// If it is, the sender was NOT a Format 
	if (btFormat != null) 
	{ 
	// Do something with the label format 
	} 
}

1.7.3、Handler处理函数的第二个参数

上例中,Handler函数形式为:
public void MyLabelFormatOnJobQueued(object sender, PrintJobEventArgs printJobEventInfo)

第二个参数可以有3种类型,PrintJobEventArgsJobSentEventArgsMonitorErrorEventArgs

PrintJobEventArgs:代表普通打印任务的事件

  • PrintJobEventArgs 类
    ClientName:客户端名, PC机名
    ID:打印任务的ID
    Name:打印任务名
    PagesPrinted:已打印的页数
    PrinterInfo:触发事件的打印机信息
    Status:当前打印状态
    TotalPages:当前打印任务的总页数
    UserName:用户名

JobSentEventArgs:是PrintJobEventArgs的子类,只多了一个成员变量,JobPrintingVerified,表示已经打印完成或已被发送到物理打印机(而不是库中的缓存队列)。

  • JobSentEventArgs 类
    ClientName:客户端名, PC机名
    ID:打印任务的ID
    JobPrintingVerified:与父类(PrintJobEventArgs )的区别在此。打印确认。
    Name:打印任务名
    PagesPrinted:已打印的页数
    PrinterInfo:触发事件的打印机信息
    Status:当前打印状态
    TotalPages:当前打印任务的总页数
    UserName:用户名

MonitorErrorEventArgs:监控错误事件,区别上面2种。

  • MonitorErrorEventArgs 类
    ComputerName:出错的PC机名
    ErrorType:错误类型
    Message:错误信息文本

1.7.4、事件events

1.7.4.1、Engine Events

9个事件类型分别是:CommandLineCompleted Event、JobCancelled Event、JobErrorOccurred、JobMonitorErrorOccurred、JobPaused、JobQueued、JobRestarted、JobResumed、JobSent

  • CommandLineCompleted Event:命令完成,区别LabelFormatDocument Event

  • JobCancelled Event:任务关闭。

      在一个Engine中,通常监控了多个LabelFormatDocument,
      当其中一个LabelFormatDocument产生打印任务关闭事件时,对应的LabelFormatDocument下会产生JobCancelled,
      并且同时,Engine也会产生JobCancelled。以下的其他事件类型也同理。
    
  • JobErrorOccurred:任务错误

  • JobMonitorErrorOccurred:监控错误

  • JobPaused:暂停

  • JobQueued:入列

  • JobRestarted:重启

  • JobResumed:回溯

  • JobSent:发送

1.7.4.2、LabelFormatDocument Event

如果需要对不同的LabelFormatDocument配置不同的事件处理,则需要在LabelFormatDocument下配置不同的回调函数。

但是,若是对所有的LabelFormatDocument事件都可以统一处理,此处就没必要逐个LabelFormatDocument配置了。直接在Engine下配置回调函数即可。

8个事件类型分别是:JobCancelled 、JobErrorOccurred 、JobMonitorErrorOccurred 、JobPaused 、JobQueued 、JobRestarted 、JobResumed 、JobSent

注意:少了一个CommandLineCompleted Event
public void Demo()
{
   // Initialize a new BarTender print engine.
   using (Engine btEngine = new Engine())
   {
      // Start the BarTender print engine.
      btEngine.Start();

      // Open a format to be printed.
      btEngine.Documents.Open(@"C:\");

      // 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);

      // Declare a commandline and execute it
      // (this commandline will print all open formats).
      String commandLine = "/P";
      btEngine.CommandLine(commandLine);

      // Since the commandline is processed asynchronously, we must
      // wait for printing to complete before stopping the engine.
      while (btEngine.IsProcessingCommandLines || btEngine.IsPrinting)
         System.Threading.Thread.Sleep(500);

      // Stop the BarTender print engine.
      btEngine.Stop(SaveOptions.PromptSave);
   }
}
  • JobCancelled :打印任务关闭时产生。
  • JobErrorOccurred :打印错误。
  • JobMonitorErrorOccurred :监控错误
  • JobPaused :打印暂停(挂起)
  • JobQueued :任务入列(库中的打印队列)
  • JobRestarted :任务重启
  • JobResumed :回溯??
  • JobSent :已被发送至打印机或打印完成,意味着从库中的打印队列转移到打印机

1.8、Printing Label Formats to a File

往文件里打印??再发送文件至打印机??

二、几个重要类的特性

2.1、Engine类

一个Engine对象代表一个打印引擎实体。

类成员:

  • 2个构造函数
name mean
Engine() 创建一个引擎实例
Engine(Boolean) 创建一个引擎实例,并指定是否在创建时就默认调用start
  • 属性:
name mean
ActiveDocument 最近一个使用的标签模板
BuildNumber 当前Engine对象的创建编号
Documents 打开的标签模板列表
Edition 当前BarTender Application的版本
FullVersion BarTender application的完整版本
IsAlive 是否程序正在运行
IsPrinting 是否正在打印
IsProcessingCommandLines 是否正在处理命令行指令
IsResponsive 在规定时间内是否响应
ResponsiveTimeout 响应超时定时器
LicenseServer 获取准许证服务程序对象
PrintJobCounter 打印任务计数值
SAPIDocDefinitionFile 获取或设置SAP IDoc配置文件名
SupportNumber 获取BarTender应用程序的支持号码
Version 获取BarTender应用程序的版本
Window 获取对Window对象的引用,该对象控制BarTender应用程序的Window的外观
  • 方法:
name mean
CommandLine() 提交命令行以供BarTender打印引擎处理
Dispose() 关闭Engine,并释放资源
Dispose(Boolean) 关闭引擎并释放对象所拥有的资源,指定是否可以处置托管资源
Finalize 析构函数
IsProductKeyCode(String) 生产密钥是否匹配软件
Restart 停止,并重启
Start() 启动进程
Stop() 暂停进程
  • 事件:
Name Mean
CommandLineCompleted 命令行完成时触发
JobCancelled 打印关闭时触发
JobErrorOccurred 打印作业出错时触发
JobMonitorErrorOccurred 当引擎在监视打印作业时遇到错误时发生
JobPaused 打印作业暂停时触发
JobQueued 打印作业入队时触发
JobRestarted 打印作业重新开始时触发
JobResumed 打印作业暂停后,恢复打印时触发
JobSent 在将打印作业发送到打印机端口时触发,打印机收到数据后才开始打印,但是上位机已经无法知晓外部打印机的工作状态了
public void Demo()
{
   // Initialize a new BarTender print engine.
   using (Engine btEngine = new Engine())
   {
      // Start the BarTender print engine.
      btEngine.Start();

      // Open a format to be printed.
      btEngine.Documents.Open(@"C:\");

      // 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);

      // Declare a commandline and execute it
      // (this commandline will print all open formats).
      String commandLine = "/P";
      btEngine.CommandLine(commandLine);

      // Since the commandline is processed asynchronously, we must
      // wait for printing to complete before stopping the engine.
      while (btEngine.IsProcessingCommandLines || btEngine.IsPrinting)
         System.Threading.Thread.Sleep(500);

      // Stop the BarTender print engine.
      btEngine.Stop(SaveOptions.PromptSave);
   }
}

2.2、LabelFormatDocument类

LabelFormatDocument的类实例代表一个.btw文件。

// Open a format document.
      LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\");
  • 注意:LabelFormatDocument继承自LabelFormat,区别在于后者并不能代表一个.btw文件,只能作为某个.btw文件的预配置格式。

类成员

  • 构造函数

  • 成员变量

Name Mean
Attached 返回此对象是否附加到BarTender自动化对象。(继承自BtAutomationObject。)
BaseName 获取标签格式文件名的基础部分。 只读。(继承自LabelFormat。)
Comment 获取或设置标签格式的注释。(继承自LabelFormat。)
DatabaseConnections 获取为标签格式定义的DatabaseConnections列表。 只读。(继承自LabelFormat。)
Detached 返回此对象是否与BarTender自动化对象分离。(继承自BtAutomationObject。)
Directory 获取标签格式文件所在的目录。只读。(继承自LabelFormat。)
Encryption 获取或设置标签格式的加密密钥。(继承自LabelFormat。)
FileName 获取标签格式文件的完整路径。 只读。(继承自LabelFormat。)
IsModified 获取或设置文档是否已修改。(继承自LabelFormat。)
LatestSaveNumber 获取格式的最新修订号。 返回:(如果Bt Format接口为null)。 如果尚未保存格式,或者版本日志功能已关闭,则为0。 否则,返回当前的修订号。(继承自LabelFormat。)
PageSetup 获取标签格式的PageSetup对象。 只读。(继承自LabelFormat。)
PasswordProtections 获取标签格式的PasswordProtections对象。 PasswordProtections包含用于指定哪些操作受密码保护的值(继承自LabelFormat。)
PrinterCodeTemplate 获取或设置一个PrinterCodeTemplate对象,该对象用于配置和导出打印机代码模板。(继承自LabelFormat。)
PrintJobCounter 获取此LabelFormatDocument所拥有的当前正在打印或在打印机队列中的打印作业数。
PrintPreview 获取标签格式的PrintPreview对象。 PrintPreview对象使用户能够显示和控制打印预览窗口。(继承自LabelFormat。)
PrintSetup 获取标签格式的PrintSetup对象。 PrintSetup对象保存有关打印机设置的数据,例如份数和打印机名称。(继承自LabelFormat。)
Prompts 获取标签格式的打印时间列表。 只读。(继承自LabelFormat。)
Status 表示LabelFormat的当前状态,有关该状态之前是否在BarTender中打开过,以及是否已缓存该格式的数据。(继承自LabelFormat。)
SubStrings 获取标签格式上的所有数据列表(数据名,以字符串形式)。 只读。(继承自LabelFormat。)
Title 获取标签格式的标题。 只读。(继承自LabelFormat。)
ViewRecordNavigator 获取ViewRecordNavigator对象,该对象用于支持模板设计中数据库记录的浏览。(继承自LabelFormat。)
  • 方法
Name Mean
Activate 将此格式设置为此BarTender引擎实例的活动格式。Activate方法会将LabelFormatDocument分配给BarTender打印引擎的ActiveDocument属性。 如果BarTender打印引擎是可见的,则格式窗口将获得焦点。
Close
ExportImageToClipboard 将标签格式的位图表示复制到剪贴板
ExportImageToFile 将格式导出到图像文件
ExportPrintPreviewRangeToFile 导出页面范围的打印预览
ExportPrintPreviewToFile 将打印预览导出到图像文件
Print() Result nResult = ();
Print(String)
Print(String, Messages)
Print(String, Int32)
Print(String, Int32, Messages) Result nResult = (“Test Print”, 6000, out btMessages);// 打印时指定作业名称和等待超时,并获取所有返回的消息
Save 保存格式
SaveAs (@“C:\”, true);// 用新名称保存格式,覆盖任何现有文件
SpecifyDocumentPassword 指定用于密码保护操作的文档密码
  • 事件
public void Demo()
{
   // Initialize a new BarTender print engine.
   using (Engine btEngine = new Engine())
   {
      // Start the BarTender print engine.
      btEngine.Start();

      // Open a format document.
      LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\");

      // Hook up to job events.
      btFormat.JobCancelled += new EventHandler<PrintJobEventArgs>(btFormat_JobCancelled);
      btFormat.JobErrorOccurred += new EventHandler<PrintJobEventArgs>(btFormat_JobErrorOccurred);
      btFormat.JobMonitorErrorOccurred += new EventHandler<MonitorErrorEventArgs>(btFormat_JobMonitorErrorOccurred);
      btFormat.JobPaused += new EventHandler<PrintJobEventArgs>(btFormat_JobPaused);
      btFormat.JobQueued += new EventHandler<PrintJobEventArgs>(btFormat_JobQueued);
      btFormat.JobRestarted += new EventHandler<PrintJobEventArgs>(btFormat_JobRestarted);
      btFormat.JobResumed += new EventHandler<PrintJobEventArgs>(btFormat_JobResumed);
      btFormat.JobSent += new EventHandler<JobSentEventArgs>(btFormat_JobSent);

      // Print the format.
      btFormat.Print();

      // Close the current format without saving.
      btFormat.Close(SaveOptions.DoNotSaveChanges);

      // Stop the BarTender print engine.
      btEngine.Stop();
   }

2.3、PrintSetup类

属于LabelFormatDocument类的一个成员,一般在打印前设置PrintSetup,用例如下

public void Demo()
{
   // Initialize a new BarTender print engine.
   using (Engine btEngine = new Engine())
   {
      // Start the BarTender print engine.
      btEngine.Start();

      // Open a format document.
      LabelFormatDocument btFormat = btEngine.Documents.Open(@"C:\");

      // Set the number of identical copies.
      btFormat.PrintSetup.IdenticalCopiesOfLabel = 2;

      // Set the number of serialized copies.
      btFormat.PrintSetup.NumberOfSerializedLabels = 10;

      // Change the comment on the format.
      btFormat.Comment = "This format now contains serialized object values";

      // Print the format.
      btFormat.Print();

      // Stop the BarTender print engine saving all changes.
      btEngine.Stop(SaveOptions.SaveChanges);
   }
}

类成员

  • 属性
name mean
Attached 是否绑定了自动化对象
AutoPrintAgain 自动连续打印
Cache 缓存
Detached 是否无任何自动化对象与之绑定
EnablePrompting 在打印时提示数据交互时间
IdenticalCopiesOfLabel 副本数量
IsIdenticalCopiesUnlimited 副本数量不受限制标志位
IsNumberSerializedLabelsUnlimited 序列号不受限制标志位
JobName 打印任务名
LabelObjectPrintMethod 打印方式,标签内不同段的打印方式
LogPrintJob 记录打印任务,类似日志
NumberOfSerializedLabels 连续打印的序列长度
Performance 打印机性能
PrinterName 打印机名
PrintToFile 是否打印到文件中
PrintToFileLicense 许可,搭配CreatePrintToFileLicense使用
PrintToFileName 文件名
RecordRange 从数据库调取记录范围以供引擎打印
ReloadTextDatabaseFields 重载文本库
SelectRecordsAtPrint 是否用户会在打印时选择打印字段
StartingPosition 位置
SupportsIdenticalCopies 是否支持多副本
SupportsSerializedLabels 是否支持序列
UseDatabase 是否使用数据库

2.4、Substring类

Substrings类属于LabelFormatDocument类的一个成员,而Substring则是Substrings中的item

类成员

  • 属性
name mean
Attached 是否绑定了自动化对象
Detached 是否解绑
Name 数据源名称
Rollover 序列化达到指定值时是否将进行翻转
RolloverLimit 发生翻转的点
RolloverResetValue 获取或设置序列化达到翻转限制时重新开始的值
SerializeBy 获取或设置发生序列化时数据源递增或递减的间隔
SerializeEvery 序列号递增或递减前,需要重复当前序列的次数
Type 数据源的类型
Value 数据源的值

在这里插入图片描述