TQ_Printrer控件,是一个为方便需要控制打印命令而设计的跨平台专用控件,已包含标准ESC/POS打印控制的基本指令在内(这些基本指令已能很好的满足多数项目使用)。

TQ_Printrer控件让开发人员在开发跨平台项目相关打印控制时更加方便快捷。控件支持Android、iOS以及WIN32/64的开发,可控制兼容ESC/POS的小票打印机。目前控件已在多个Android、iOS项目中配合蓝牙小票打印机使用。

控件下载地址:

Delphi 10 Seattle小票打印控件

 一、控件安装

1、在Delphi 10 Seattle开发环境打开控件目录下print.dpk文件(XE8下请使用print_XE8.dpk文件)。在项目管理器中选择WIN32。

2、右键单击项目,在弹出菜单中选择“install”,安装控件。

弹出下图说明安装成功(路径会不同)。

3、在项目中配置控件引用路径:

打开或新建项目,打开菜单project,找到Option,在目标平台中选择“All CConfiguations - All platforms”,将路径添加到Delphi Compiler->SearchPath中。如下两图:

使用你控件放置的路径,绝对目录\TQ_Printer\DCU\FMX\D10\$(Platform)\Release,这点很重要。(XE8安装时请把D10改为XE8)

 二、了解控件

新建一个项目,在Tool Palette 中选择TQ_Printer控件,并将其放置到窗体设计器。切换到Object Inspector,点击ReadMe属性后面的[…]按钮,可以查看控件说明。如下图:

说明后半部分给出了使用的代码样例。

以下是控件使用说明:

Pinit 初始化打印设置。

CR 换行控制

FontSize(X,Y:Integer) 设置字体大小,x,y分别为字体高宽放大倍数;

取值1时为正常大小,最大取值为8。

如:FontSize(2,2)为高宽放大2倍。

Align(TAlign)  排版设置,分别为居中(TAlign.Center)、居左(TAlign.Left)、居右(TAlign.Right)

如:Align(TAlign.Center),设置居中打印。

Crude(Boolean) 为True时使用加粗模式,为False则关闭加粗模式。

如:Crude(True)使用加粗模式, Crude(True)关闭加粗模式。

Crude(string) 参数为字符串时,自动为该字符串设置为加粗模式,并关闭加粗模式。

如:Crude('使用加粗模式')。

Double(Boolean) 为True时使用双重打印模式,为False则关闭双重打印模式。

如:Double(True)使用双重打印模式, Double(True)关闭双重打印模式。

Double(string) 参数为字符串时,自动为该字符串设置为双重打印模式,并关闭双重打印模式。

如:Double('使用双重打印模式')。

Rotate(Boolean) 为True时顺时针旋转90度打印,为False则关闭顺时针旋转90度打印。

如:Rotate(True)使用顺时针旋转90度打印, Rotate(True)关闭顺时针旋转90度打印。

Rotate(String) 参数为字符串时,自动为该字符串设置为顺时针旋转90度打印,并关闭顺时针旋转90度打印。

如:Rotate('顺时针旋转90度打印')。

Rotate_180()、Rotate_270()使用方式同上。区别在于顺时针旋转度数不同。(请注意,某些打印机并不支持。)

Underline(Integer) 使用下划线,分另为取消下划线(0)、1点下划线(1)、2点下划线(2)

如:Underline(0)取消下划线。

Underline(String,Integer) 参数为字符串时,自动为该字符串设置为下划线模式,并关闭下划线模式。

如:Underline('2点下划线',2)

LineSpacing(Integer) 设置行间距,为0时使用默认行间距,取值0-255.

如:LineSpacing(30),设置为30个打印点的行间距。

WordSpacing(Integer) 设置字间距,0为默认字间距,取值0-255.

如:WordSpacing(3),设置为3个打印点的字间距。

PrintLU(Integer) 打印并走纸N行,将打印缓冲区中的数据,并进纸N字符行。

如:PrintLU(1),将打印并进纸1行。

PrintJU(Integer) 打印并走纸N点,将打印缓冲区中的数据,并进纸N打印点。

如:PrintJU(1),将打印并进纸1点。

StringToByteS(Data: String; charset:String)将字符串转换为Bytes,供打印机使用。

如:StringToByteS(PrintData, 'GB2312')

以下为样例代码(也可通过TQ_Printer1.Print_Test 取出样例数据,或直接将样例数据发送到打印机测试打印效果。):

function Print_Test: string;

var

P:TTQ_Printer;  //代码看上去会短很多  看下面事例

ToTEST:string;

begin

ToTEST:=P.Pinit  //初始化打印机设置

+P.Align(TAlign.Center) + P.FontSize(1,1) + '正常居中' + P.CR

+P.FontSize(2,1) + '2倍高居中' + P.CR     //不用每行定义居中

+P.FontSize(1,2) + '2倍宽居中' + P.CR

+P.FontSize(2,2) + '2倍高宽居中' + P.CR

+P.Align(TAlign.Left) + P.FontSize(1,1) + '正常居左' + P.CR

+P.FontSize(2,1) + '2倍高居左' + P.CR

+P.FontSize(1,2) + '2倍宽居左' + P.CR

+P.FontSize(2,2) + '2倍高宽居左' + P.CR

+P.FontSize(1,1)  //返回正常大小

+P.Crude('使用加粗模式') + P.CR

+P.Double('使用双重打印模式') + P.CR

+P.Rotate('顺时针旋转90度打印') + P.CR

+P.Underline('2点下划线   空格没有线',2) +P.CR

+P.Underline('1点下划线   空格没有线',1) +P.CR

+P.Underline(0) + '取消下划线以下正常行间距' + P.CR

+P.LineSpacing(5) + '以下5行间距' + P.CR

+P.LineSpacing(10) + '以下10行间距' + P.CR

+P.LineSpacing(20) + '以下20行间距' + P.CR

+P.LineSpacing(40) + '以下40行间距' + P.CR

+P.LineSpacing(60) + '以下60行间距' + P.CR

+P.LineSpacing(0) + '以下默认行间距' + P.CR

+P.WordSpacing(5) + '以下5点字间距' + P.CR

+P.WordSpacing(5) + '以下10点字间距' + P.CR

+P.WordSpacing(0) + '以下默认字间距' + P.CR

+'测试完成' + P.CR

+P.PrintLU(1); // 结束打印走纸一行

result:= ToTEST;

end;

(通过TQ_Printer1.Note.Text,可取出详细说明内容。)

三、使用控件

别看说明写了一大堆,使用起来那是非常的简单方便。首先,项目需要能连接到打印机并能执行打印任务。

我的打印代码如下:

procedure TFormMain.Button1Click(Sender:TObject);

var

P:TTQ_Printer;  //也可直接使用TQ_Printer1

ToTEST, ToPrint:string;

begin

{打印控制参数样例数据_Begin}

ToTEST:=TQ_Printer1.Print_Test; // 取打印样例数据

{打印控制参数样例数据_End}

{组织打印数据_Begin}

ToPrint := P.Pinit + p.FontSize(2,2) + P.Align(TAlign.Center) + '小票标题' + P.CR

+P.FontSize(1,1) + P.Align(TAlign.Left)

+'--------------------------------' + P.CR

+ '单号:12352421423134122'+ P.CR

+'时间:2015年01月01日' + P.CR

+'往来单位:'

+P.Underline('XXXXXXXXXXXXX',2) + P.CR

+'  商品名    单位    价格' + P.CR

+'加多宝       瓶     10.00' + P.CR

+'多加宝       瓶     10.00' + P.CR

+'宝加多       瓶     11.00' + P.CR

+'--------------------------------' + P.CR

+'合计:31.00元' + P.CR

+P.PrintLU(1); // 结束打印

{组织打印数据_End}

//调用打印

Print_Data(ToPrint);

// Print_Data(ToTEST);  //打印样例数据使用。

// print_Data为我的打印过程,这里将数据发送到打印机,某些打印需要转换为ByteS数据后使用,可使用StringToByteS函数。

//如: Print_Data(P.StringToByteS(ToTEST,'GB2312'));

end;

四、打印效果

以下是iOS与Android开发的APP下使用蓝牙小票打印机打印的实测效果。

以下是使用商米V1手持设备打印效果测试(虚拟蓝牙打印):

Delphi 10 Seattle 小票打印控件TQ_Printer的更多相关文章

  1. 修改Delphi 10.1.2 edit控件在android的复制、剪切和粘贴样式

    Delphi 10.1.2 edit控件在android默认的复制.剪切和粘贴样式太丑,经悟能-DelphiTeacher的提示,用最简单的代码修改后稍有改观. 默认的样式: 修改后的样式: 修改FM ...

  2. delphi 10 seattle 安卓服务开发(一)

    从delphi 开始支持安卓的开发开始, 安卓service 开发一直都是delphier 绕不过去的坎, 以前也有开发service  的方法,但是都是手工处理启动文件,而且要修改很多东西,基本上成 ...

  3. delphi 10 Seattle 第一个Android程序

    delphi 10 Seattle 第一个Android程序 1.打开Delphi RAD Studio Seattle,如下图     2.选择black application 点击OK   3. ...

  4. winform 对话框,保存,另存为,还有打印控件

    学习的对话框的种类: 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorDial ...

  5. [2014.01.27]wfPrintOcx 票据打印控件 v5.3

    支持选择打印机,并自动记忆选择的打印机. 适合打印各类票据格式. 支持画正方形.长方形.圆形.椭圆.横线.竖线.HTTP图片. 支持数字金额转换成中文大写金额. 可以设置固定宽度的文字自动换行. 组件 ...

  6. 网页WEB打印控件制作-开放源码

    在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的一件事件,本文将自己开发 ...

  7. Windows 打印控件

    Windows窗体的PrintDocument组件用于设置一些属性,这些属性说明,在基于Windows的应用程序中要打印说明内容以及打印文档的能力,可将它与PrintDialog组件一起使用来控制文档 ...

  8. Web打印控件smsx.cab使用说明

    在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab.    使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局 ...

  9. Lodop打印控件传入css样式、看是否传入正确样式

    Lodop中可以传入页面存在的css样式,也可以是拼接后的新样式,例如本博客的其他博文:Lodop打印如何隐藏table某一列 需要打印的页面,样式不一定都是行内样式,style样式单独写在页面上,或 ...

随机推荐

  1. 如何解决#1045 - Access denied for user 'root'@'localhost' (using password: NO)问题

    1. #1045 - Access denied for user 'root'@'localhost'  (using password: NO) 解决方案 在phpMyAdmin中librarie ...

  2. Linq to Entity 动态拼接查询条件(重点是OR)

    public static class PredicateExtensions { /// <summary> /// 机关函数应用True时:单个AND有效,多个AND有效:单个OR无效 ...

  3. OpenStack提交代码的review流程

    本文整理向openstack社区提交代码的基本流程,以及社区一些介绍资料.如有转载,请注明出处! 先放张图说明一下OpenStack的code review的大体流程: 对OpenStack提交代码更 ...

  4. 【Hibernate步步为营】--最后的集合映射

    上篇文章具体讨论了组合对象映射的原理.它事实上指的是怎样将对象模型中的组合关系映射到关系模型中,它是通过使用Hibernate提供的<component>标签来实现的,并须要在该标签中加入 ...

  5. WAS6.1连接SQL Server2008数据库连接池配置

    原文链接:http://www.cnblogs.com/lyr2012/archive/2012/06/13/2547804.html 说明:该步骤只适用与websphere 6.1.0.15之前的版 ...

  6. 在Centos7下发布.NET CORE项目[转]

    1.安装安装前准备开发环境 编译类库:yum -y install gcc make gcc-c++ openssl-devel 系统信息: CentOS Linux release 7.2.1511 ...

  7. Dubbo简介2

    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成.具体可以看 百度百科 https://baike.ba ...

  8. iOS多版本多设备适配的问题

    好吧,能找到这文章的,一般是接到了如下需求:  我是从raywenderlich抽了点内容出来做日记,另外,本文说的不是布局的适配,而是因为ios的升级带来的各版本代码上的不兼容. Deploymen ...

  9. 修改vs2005,vs2008,vs2010调试默认浏览器

    前些日子不小心安装上了一个sogou的浏览器,感觉这个浏览器用起来也算方便,所以就么有卸载,一直就这么用着,但当我用vs来调试web程序的 时候问题出来了,默认的调试浏览器变成了搜狗的浏览器了,我在v ...

  10. Can't clobber writable file **************

    最近搭建了新的quick check server, workspace也是新的.但是get latest (unshelve)的时候,出现以下错误: can't clobber writable f ...