MobileForms Toolkit 中提供的 Zebra 打印接口





0/5 (0投票)
Resco 的解决方案将大大减少开发人员编写此类应用程序所需的时间,该应用程序将在 Windows Mobile 或 CE 设备上通过 Zebra 打印机进行打印。
当我们谈论打印机时,很多人可能会想到可以打印 A4 格式文件的标准大型激光打印机。但是,打印的不仅仅是文档。在企业界,公司经常需要打印票据、收据、标签,这些标签可以被条形码扫描仪扫描。它们显示价格,或者用于标记包装内的物品,或者用于跟踪货物。在仓储、物流、供应链、维护、制造、医疗保健或公共部门等行业中,每天都有数百万张这样的票据、标签和收据被打印。标准打印机不适合打印这些。而是使用便携式打印机。Zebra 是全球领先的便携式工业打印机制造商,拥有超过 50% 的市场份额。如果您需要在便携式打印机上打印内容,您需要一个额外的设备来告诉打印机要打印什么。例如,您可以使用台式电脑或智能手机。显然,如果您想在现场、仓库内或旅途中打印内容,则无法使用台式电脑。更好的选择是使用智能手机。然而,移动开发者经常发现让打印机工作太难了。
Zebra 的 SDK 特别适合底层编程。这意味着什么?这意味着即使对于具有高级技能的开发人员来说,让打印机工作也需要花费大量时间。要通过 Zebra 打印机打印有用的票据或收据,移动开发人员需要深入研究 Zebra 的 SDK 代码,以了解有关该功能的全部信息。他需要了解各种网络,如蓝牙或 Wifi 及其协议。当打印内容时,开发人员始终在使用打印机命令,无论他需要对齐文本、打印文本、打印图片或条形码、插入线条或其他对象。
Resco 的解决方案将大大减少开发人员编写应用程序所需的时间,该应用程序将在 Windows Mobile 或 CE 设备上通过 Zebra 打印机打印内容。观看视频,其中我们演示了在真实设备上使用示例。
它由打印接口和报表接口组成。
打印接口
打印接口使用 Zebra 的 SDK 连接到打印机并发送打印命令。它是 Zebra SDK 的扩展,它提供了额外的代码模型。开发人员现在不需要向打印机发送直接命令。这通过 Resco 的接口来保证。
报表接口
报表接口与打印接口紧密配合。它直接使用 C# 语言。开发人员可以以 XML 模板的形式定义报表,该模板可以绑定到任何数据源。Resco MobileForms Toolkit 包含的示例应用程序中有一个订单和客户列表。
这是一个示例 XML 模板,它将打印一些文本、线条、列表和条形码。
<?xml version="1.0" encoding="utf-8" ?>
<page Width="400" Mode="Journal">
<!-- Print some information -->
<panel Height="26" DataSource="Header">
<text X="0" Y="0" Font="7" FontSize="0" MaxLength="14" Width="170"
HAlign="Left">Count:</text>
<text X="170" Y="0" Font="7" FontSize="0" MaxLength="19" Width="230"
HAlign="Right" DataMember="(Default)" />
<line X="0" Y="24" X1="400" Y1="24" LineWidth="2" />
</panel>
<!-- Print list -->
<repeatpanel Height="24" DataSource="Data">
<text X="0" Y="0" Font="7" FontSize="0" DataMember="(Default)" />
</repeatpanel>
<!-- Print barcode -->
<panel Height="120" DataSource="Barcode">
<barcode X="0" Y="0" Type="Code128" Width="400" Height="96"
HAlign="Center" DataMember="(Default)" />
<text X="0" Y="96" Font="7" FontSize="0" Width="400" HAlign="Center"
DataMember="(Default)" />
</panel>
</page>
模板由几个报表对象组成,例如在报表接口中定义的“page”、“panel”、“text”等。
定义新的自定义报表对象
开发人员还可以添加一些他自己需要的报表对象。这是一个示例,说明如何定义一个新的“rectangle”报表对象
using System;
namespace Resco.Report
{
public class ReportRectangle : ReportElement
{
public ReportRectangle()
{
}
public int Width { get; set; }
public int Height { get; set; }
public int Thickness { get; set; }
public override void Print(Resco.Printer.IPrinter printer)
{
printer.PrintRectangle(this.X, this.Y, this.Width,
this.Height, this.Thickness);
}
public override void Scale(System.Drawing.SizeF scaleFactor)
{
this.Width = (int)(this.Width * scaleFactor.Width);
this.Height = (int)(this.Height * scaleFactor.Height);
base.Scale(scaleFactor);
}
}
}
为新命令定义新的打印机接口方法
using System;
using System.Drawing;
namespace Resco.Printer
{
public interface IPrinter : IDisposable
{
void PrintRectangle(int x, int y, int width, int height, int thickness);
}
}
将新命令方法实现到 PrinterZebra
类
public void PrintRectangle(int x, int y, int width, int height, int thickness)
{
// BOX {x0} {y0} {x1} {y1} {width}
m_toolsUtil.SendCommand(String.Format("BOX {0} {1} {2} {3} {4}" + NL, x,
m_yOffset + y, x + width, m_yOffset + y + height, thickness));
}
这是如何在 XML 中使用我们的矩形的示例
<panel Height ="100">
<rectangle X="0" Y="0" Width="400" Height="100" Thickness="2" />
</panel>
开发人员可以用类似的方式定义更复杂的对象。
Zebra 打印示例仅适用于有效订阅 Resco MobileForms Toolkit 的用户。