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. android控件复制,修改Delphi 10.1.2 edit控件在android的复制、剪切和粘贴样式

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

  2. C#开发 ActiveX 小票打印控件

    背景 去年帮朋友搞一个IE打印控件,在网上找了很多都不满足,要么是不能直接打印,要么是不能指定打印机,还有的是不能自定义样式.在网上折腾了一个周,还没搞定,于是想还不如自己开发一个吧.结果从现学C#到 ...

  3. PAZU WEB打印控件

    PAZU WEB打印控件 PAZU 组件在国内我们提供授权给包括中国电信.移动和银行在内的超过300家大中型企业和IT企业应用于基于WEB的开发 PAZU 支持包括Java, Dot Net, JSP ...

  4. 发现了一个好用的WEB项目打印控件--四方打印

    PAZU 与WEB打印  PAZU 组件应用于基于WEB的开发  PAZU 提供以下三大类功能:             1.控制IE窗口的外观和行为 1.1 通过 JavaScript 隐藏IE的地 ...

  5. web打印免费控件PAZU -- 四方在线WEB打印控件

    用IE自带打印功能,纸张类型.页边距等参数在关闭IE后会回到默认值,开发的web项目打印功能不尽人意,网上找了很多web打印控件,多是收费的,最终还是找到了一个免费的:PAZU 以下是介绍: 以往,很 ...

  6. ATGrid WEB报表打印控件/MIS报表控件

    ATGrid WEB报表打印控件/MIS报表控件 ATGrid报表控件/WEB插件[专业版],对EtCell进行了进行了全面的改革, 将会彻彻底底的解决你的报表问题,让你开发达到从未有过的轻松和喜悦- ...

  7. java web 打印控件_web打印,web打印控件,dotnet web打印控件,java web打印控件,webprint...

    webprint打印参数设置小插件,主要实现打印纸张,边距,打印机等的设置. 主要功能: 设置页眉页脚属性 设置打印页面左右上下边距 设置打印方向,打印份数,打印指定页 打印模版和指定纸型绑定 设置自 ...

  8. C#打印控件的使用实例

    C#打印控件的使用是如何的呢?我们在编写C#打印控件实用程序的时候怎么操作呢?首先弄一个printDocument控件,然后在打印的按钮中直接调用printDocument1.print()事件. 再 ...

  9. lodoop打印控件详解

    [java] view plaincopy 注意:使用此打印控件需要引入(在我上传的Demo中都有): install_lodop32.exe install_lodop64.exe LodopFun ...

最新文章

  1. 体绘制(Volume Rendering)概述之4:光线投射算法(Ray Casting)实现流程和代码(基于CPU的实现)...
  2. syscall 系统调用陷入_trusty系统调用
  3. python怎么检查数据库实例能否链接_python pymysql链接数据库查询结果转为Dataframe实例...
  4. html5 coverflow,使用CSS+JS帮你实现苹果cover flow效果
  5. Android 应用内启动第三方应用
  6. flex file 文件上传 带参数 php,php+flex打造多文件带进度超级上传
  7. 三星Galaxy S21 FE现身Geekbench:骁龙888+6GB运存
  8. 20 世纪 70 年代的太空殖民艺术
  9. Vue-router路由使用,单页面的实现
  10. linux查看某个端口的流量_Linux下如何对端口流量进行统计
  11. android开发学习——关于activity 和 fragment在toolbar上设置menu菜单
  12. 2021牛客暑期多校训练营8,签到题ADEK
  13. 设置域用户帐户的登录时间
  14. 经纬财富:莆田炒现货白银技巧
  15. 期末|研究生英语写译教程(提高级/第三版)课后练习答案
  16. 谷歌人工智能影响挑战的受益者 | 硅谷洞察
  17. 2的10次方-1的python表达式_python计算数学表达式
  18. 哈夫曼树构建与哈夫曼树编码
  19. Android已root设备定时重启
  20. incaformat蠕虫病毒样本分析及查杀防范措施

热门文章

  1. html视频播放器全屏,HTML5 video播放器全屏(fullScreen)方法实例
  2. omv检查硬盘坏道_关于怎么用MHDD修复硬盘坏道
  3. 仿京东商城左侧商品分类导航-JS网页特效
  4. rgb 光谱 转换_使用深度学习将RGB图像转换为高光谱
  5. MacW资讯:设置苹果Mac电脑的开机密码
  6. php 天干地支,PHP天干地支、生肖的生成
  7. MCAL多核中断配置方法
  8. 02136Windows及应用【计算机公共基础习题解答】
  9. Java如何删除文件夹和子文件夹
  10. vulnhub靶场——VULNERABLE DOCKER: 1 Easy