65.9K
CodeProject 正在变化。 阅读更多。
Home

MobileForms Toolkit 中提供的 Zebra 打印接口

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2012年7月1日

CPOL

3分钟阅读

viewsIcon

26111

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 的用户。

您可以从 https://portal.resco.net/ProductDownloads.aspx 下载示例。

产品信息:http://www.resco.net/developer/mobileformstoolkit/

© . All rights reserved.