多媒体控件
# PinToo控件使用(多媒体组件)
多媒体控件中包含了用于媒体内容展示的相关控件类型
# 1. TfxBaiduOCR(仅内部使用)
- 引用单元 CCBaiduOCR
TfxBaiduOCR是一个基于BaiduOCR的OCR识别组件。使用时需要到百度官方网站进行注册申请Key。
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
# 1.1. 事件(Events)
- TfxBaiduOCR组件主要事件
事件 | 何时触发 |
---|---|
OnInitAccessTokenWithAkSkResult | 初始化组件时触发 |
OnRecognizeResult | 识别完成时触发 |
# 1.1.1. OnInitAccessTokenWithAkSkResult事件
procedure (Sender: TObject;AErrorCode: Integer; AErrorMsg: String; AToken: String);
当TfxBaiOCR组件调用InitAccessTokenWithAkSk方法时,触发该事件。
if AErrorCode = 0 then
begin
showmessage('获取token成功!' + #13#10 + AToken);
end
else
begin
showmessage('获取token失败!' + #13#10 + AErrorMsg);
end;
2
3
4
5
6
7
8
# 1.1.2. OnRecognizeResult事件
procedure(Sender: TObject;AOCRType: String; AErrorCode: Integer; AErrorMsg: String;AFilePath: String; AJosonResult: String; AIDCardInfo:TCCIDCardInfo;ABankCardInfo: TCCBankCardInfo)
当TfxBaiOCR组件识别成功时,触发该事件并返回识别结果。
Showmessage(AJosonResult);
# 1.2. 方法(Methods)
- TfxBaiduOCR组件主要方法
方法 | 功能说明 |
---|---|
ocr_general_basic | 识别SIM卡号、通用文字识别 |
ocr_general | 通用文字识别含位置信息 |
ocr_accurate | 通用文字识别含位置信息高精版 |
ocr_general_webimage | 网络图片识别 |
OCR_id_card_front_native | 身份证正面识别 |
OCR_id_card_back_native | 身份证反面识别 |
ocr_bank_card | 银行卡识别 |
ocr_vehicle_license | 行驶证识别 |
ocr_driving_license | 驾驶证识别 |
ocr_business_license | 营业执照识别 |
ocr_receipt | 通用票据识别 |
ocr_license_plate | 车牌识别 |
initAccessTokenWithAkSk | 初始化OCR组件 |
# 1.2.1. ocr_general_basic方法
识别SIM卡号、通用文字识别。
//SIM卡识别
fxBaiduOCR1.TagString:='SIM';
fxBaiduOCR1.ocr_general_basic;
//通用文字识别
fxBaiduOCR1.TagString:='ocr_general_basic';
fxBaiduOCR1.ocr_general_basic;
2
3
4
5
6
7
# 1.2.2. ocr_general方法
通用文字识别含位置信息。
//通用文字识别含位置信息
fxBaiduOCR1.ocr_general;
2
# 1.2.3. ocr_accurate方法
通用文字识别含位置信息。
//通用文字识别含位置信息高精版
fxBaiduOCR1.TagString:='ocr_accurate';
fxBaiduOCR1.ocr_accurate;
2
3
# 1.2.4. ocr_general_webimage方法
网络图片识别。
//网络图片识别
fxBaiduOCR1.TagString:='ocr_general_webimage';
fxBaiduOCR1.ocr_general_webimage;
2
3
# 1.2.5. OCR_id_card_front_native方法
身份证正面识别。
//身份证正面识别
fxBaiduOCR1.TagString:='OCR_id_card_front_native';
fxBaiduOCR1.OCR_id_card_front_native;
2
3
# 1.2.6. OCR_id_card_back_native方法
身份证反面识别。
//身份证反面识别
fxBaiduOCR1.TagString:='OCR_id_card_back_native';
fxBaiduOCR1.OCR_id_card_back_native;
2
3
# 1.2.7. ocr_bank_card方法
银行卡识别。
fxBaiduOCR1.TagString:='ocr_bank_card';
fxBaiduOCR1.ocr_bank_card;
2
# 1.2.8. ocr_vehicle_license方法
行驶证识别。
//行驶证识别
fxBaiduOCR1.TagString:='OCR_id_card_front_native';
fxBaiduOCR1.ocr_vehicle_license;
2
3
# 1.2.9. ocr_driving_license方法
驾驶证识别。
//驾驶证识别
fxBaiduOCR1.TagString:='ocr_driving_license';
fxBaiduOCR1.ocr_driving_license;
2
3
# 1.2.10. ocr_business_license方法
营业执照识别。
//营业执照识别
fxBaiduOCR1.ocr_business_license;
2
# 1.2.11. ocr_receipt方法
通用票据识别。
//通用票据识别
fxBaiduOCR1.TagString:='ocr_receipt';
fxBaiduOCR1.ocr_receipt;
2
3
# 1.2.12. ocr_license_plate方法
车牌识别。
//车牌识别
fxBaiduOCR1.TagString:='ocr_license_plate';
fxBaiduOCR1.ocr_license_plate;
2
3
# 1.2.13. initAccessTokenWithAkSk方法
procedure TCCBaiduOCR.initAccessTokenWithAkSk(ak: String; sk: String);
BaiOCR初始化,验证AK,SK是否正确,并返回AccessToken令牌。
fxBaiduOCR1.initAccessTokenWithAkSk(ak字符串,sk字符串);
# 2. TfxBaiduAPI
- 引用单元 uBaiduAPI
TfxBaiduAPI是一个基于BaiduOCR的OCR识别组件。使用时需要到百度官方网站进行注册申请Key。
# 2.1. 属性(Properties)
- TfxBaiduAPI组件SdkConfig主要属性
属性 | 功能说明 |
---|---|
APIKey | 百度OCR APIKey |
Secret | 百度OCR密钥 |
- 示例
基础文字识别
//基础文字识别
var
v:string;
begin
//可指定文件或指定图片的Bitmap
fxBaiduAPI1.FileToBase64 := PicturePath; //PicturePath是指图片路径
fxBaiduAPI1.SetPictureToBase64(Image1.Bitmap)//指定图片的Bitmap
fxBaiduAPI1.GeneralBasic := fxBaiduAPI1.FileToBase64;
v := fxBaiduAPI1.GeneralBasic;
end;
2
3
4
5
6
7
8
9
10
车牌识别
//车牌识别
var
v:string;
begin
//可指定文件或指定图片的Bitmap
fxBaiduAPI1.FileToBase64 := PicturePath; //PicturePath是指图片路径
fxBaiduAPI1.SetPictureToBase64(Image1.Bitmap)//指定图片的Bitmap
fxBaiduAPI1.licensePlate := fxBaiduAPI1.FileToBase64;
v := fxBaiduAPI1.licensePlate;
end;
2
3
4
5
6
7
8
9
10
//车牌识别时触发DolicensePlate事件,可在事件中定义其它配合的业务逻辑
Procedure fxBaiduAPI1DolicensePlate(Sender: TObject; Color: string; Number: string);
Begin
Showmessage('颜色:'+Color+',车牌号:'+Number);
End;
2
3
4
5
车型识别
//车型识别
var
v:string;
begin
//可指定文件或指定图片的Bitmap
fxBaiduAPI1.FileToBase64 := PicturePath; //PicturePath是指图片路径
fxBaiduAPI1.SetPictureToBase64(Image1.Bitmap)//指定图片的Bitmap
fxBaiduAPI1.Car := fxBaiduAPI1.FileToBase64;
v := fxBaiduAPI1.Car;
end;
2
3
4
5
6
7
8
9
10
# 3. TfxBarcodeScanner
- 引用单元 CCBarcodeScanner
一维二维条码识别组件。
# 3.1. 属性(Properties)
- TfxBarcodeScanner组件SdkConfig主要属性
属性 | 功能说明 |
---|---|
Flashlight | 指定是否开启闪光灯功能 |
PlayVoice | 指定是否开启扫描提示音 |
Scan_ExtraTips | 指定扫描框下方提示信息 |
Scan_Tips | 指定扫描框提示信息 |
Scan_Title | 指定扫描窗体的标题栏 |
ShowScanFromPhotoButton | 指定是否显示相册按钮 |
ToastResult | 指定是否显示扫描返回结果 |
Vibrate | 指定是否开启震动功能 |
# 3.1.1. Flashlight属性
开启闪光灯,可以在光线不足的情况下增加扫描成功率。
//开启闪光灯
fxBarcodeScanner1.SdkConfig.Flashlight := true;
2
# 3.1.2. PlayVoice属性
开启扫描提示音,扫描条码成功后会有“嘀”的声音发出。
//开启提示音
fxBarcodeScanner1.SdkConfig.PlayVoice := true;
2
# 3.1.3. Scan_ExtraTips属性
指定一个扫描框下方面提示内容。
# 3.1.4. Scan_Tips属性
指定一个扫描框上方面提示内容。
fxBarcodeScanner1.SdkConfig.Scan_Tips := '将二维码/条码放入框内,即可自动扫描';
# 3.1.5. Scan_Title属性
指定一个扫描框窗体的标题内容。
fxBarcodeScanner1.SdkConfig.Scan_Title := '二维码/条码';
# 3.1.6. ShowScanFromPhotoButton属性
指定是否开启相册按钮,当设置为True时,显示相册按钮,可选择相册中包含条码信息的相片进行条码识别。
//开启相册按钮
fxBarcodeScanner1.SdkConfig.ShowScanFromPhotoButton := true;
2
# 3.1.7. ToastResult属性
指定是否开启返回扫描结果。开启时,扫描识别的条码信息会通过Toast提示框方式显示在屏幕上。
//显示扫描结果
fxBarcodeScanner1.SdkConfig.ToastResult := true;
2
# 3.1.8. Vibrate属性
指定是否开启震动功能。开启时,扫描成时会以震动反馈出来。
//开启震动功能
fxBarcodeScanner1.SdkConfig.Vibrate := true;
2
# 3.2. 3.1.2.事件(Events)
- TfxBarcodeScanner组件主要事件
事件 | 何时触发 |
---|---|
OnScanComletedCallbackEvent | 当条码扫描成功后回调触发 |
# 3.2.1. OnScanComletedCallbackEvent事件
当条码扫描成功后回调触发,在此可以实现特定的业务处理。
Procedure fxBarcodeScanner1OnScanComletedCallbackEvent(Sender: TObject; ResultCode: Integer; ResultString: string);
Begin
fxMemo1.Lines.Add(ResultString);//将扫描结果写入文本框中
End;
2
3
4
# 3.3. 方法(Methods)
- TfxBarcodeScanner组件主要方法
方法 | 功能说明 |
---|---|
Start | 开始扫描 |
# 3.3.1. Start方法
fxBarcodeScanner1.Start;
# 4. TfxObr
- 引用单元 SystemClass
TfxObr是一个识别图片中二维码的组件。
通过fxObr1.Obr方法识别图片中的二维码,并通过OnObr事件反馈识别后的结果。
//识别Image1图片中的二维码
fxObr1.Obr(Image1.Bitmap);
2
# 5. TfxGPrinter
- 引用单元 CCGPrinter
TfxGPrinter是一个佳博条码打印机组件,通过蓝牙方式进行连接打印。
TfxGPrinter包含两个打机印类型 TCCGPrinterEscCommand(小票POS打印机)和TCCGPrinterLabelCommand(标签打印机)。
# 5.1. 属性(Properties)
- TfxGPrinter组件主要属性
属性 | 功能说明 |
---|---|
BluetoothMacAddress | 指定蓝牙MAC地址 |
# 5.1.1. BluetoothMacAddress属性
property BluetoothMacAddress: String read FBluetoothMacAddress write SetBluetoothMacAddress;
BluetoothMacAddress属性是指被连接的蓝牙打印机的Mac地址,通过指定Mac地址,实现连接和打印功能。
AGPrinter.BluetoothMacAddress:='DC:0D:30:75:4B:6C'; //将蓝牙地址赋值给控件
# 5.2. 方法(Methods)
# 5.2.1. TfxGPrinter组件主要方法
- TfxGPrinter组件主要方法
方法 | 功能说明 |
---|---|
OpenPort | 打开蓝牙连接 |
ClosePort | 关闭蓝牙连接 |
sendLabelCommand | 发送标签打印命令 |
sendEscCommand | 发送POS打印命令 |
# 5.2.1.1.1. OpenPort方法
function OpenPort: Boolean;
使用OpenPort方法时,必需先配对并指定蓝牙Mac地址。
AGPrinter.BluetoothMacAddress:='DC:0D:30:75:4B:6C'; //将蓝牙地址赋值给控件
if AGPrinter.OpenPort then
showmessage('连接成功!')
else
showmessage('连接失败!');
2
3
4
5
# 5.2.1.1.2. ClosePort方法
function ClosePort: Boolean;
使用ClosePort方法时,将会关闭与打印机的连接。
# 5.2.1.1.3. sendLabelCommand方法
procedure sendLabelCommand(ALabelCommand: TCCGPrinterLabelCommand);
发送标签打印命令。
# 5.2.1.1.4. sendEscCommand方法
procedure sendEscCommand(AEscCommand: TCCGPrinterEscCommand);
发送小票打印命令。
# 5.2.2. TCCGPrinterLabelCommand类主要方法
- TCCGPrinterLabelCommand类主要方法
方法 | 功能说明 |
---|---|
addSize | 设置标签尺寸 |
addGap | 设置间隙长度 |
addCashdrwer | 产生钱箱控制脉冲 |
addOffset | 控制每张标签的停止位置 |
addSpeed | 设置打印速度 |
addDensity | 设置打印浓度 |
addDirection | 设置打印方向和镜像 |
addReference | 设置原点坐标,原点坐标位置与 DIRECION 设置有关 |
addCls | 清除打印缓冲区数据 |
addFeed | 走纸 |
addBackFeed | 退纸 |
addFormFeed | 走一张标签距离 |
addHome | 标签纸位置进行一次校准 |
addPrint | 打印标签 |
addCodePage | 设置国际代码页 |
addSound | 设置蜂鸣器 |
addLimitFeed | 用于设置打印机走纸时,若走过设定长度仍无法检测到间隙,则打印机报错 |
addBar | 在打印缓冲区域上绘制黑块 |
add1DBarcode | 在打印缓冲区域上绘制一维条码 |
addBox | 在打印缓冲区域绘制矩形 |
addBitmap | 在打印缓冲区域绘制位图 |
addErase | 擦除打印缓冲区中指定区域的数据 |
addReverse | 将指定区域的数据黑白反色 |
addText | 在打印缓冲区中绘制文字 |
addQRCode | 在打印缓冲区中绘制二维码 |
addPeel | 设置剥离功能是否开启,仅限于部分机型,默认关闭 |
addTear | 设置撕离功能是否开启,默认开启 |
addCut | 设置切刀功能是否开启,仅限于部分机型 |
addReprint | 设置打印机出现错误时,是否打印上一张内容,默认开启 |
addPrintKey | 设置是否按走纸键打印最近一张标签 |
addPrintKeyM | 设置按走纸键打印最近一张标签的份数 |
# 5.2.2.1.1. addSize方法
//功能:设置标签尺寸
//参数:width:标签宽度 mm
//height:标签高度 mm
//返回值:无
procedure addSize(width: Integer; height: Integer);
2
3
4
5
# 5.2.2.1.2. addGap方法
//功能:设置间隙长度
//参数:gap:间隙长度单位 mm
//返回值:无
procedure addGap(gap: Integer);
2
3
4
# 5.2.2.1.3. addCashdrwer方法
//功能:产生钱箱控制脉冲
//参数:m :钱箱引脚号
//t1 :高电平时间为 t1 x 2ms
//t2 : 低电平时间为 t2 x 2ms
//返回值:无
procedure addCashdrwer(m: TCCGPrinter_LabelCommand_FOOT; t1: Integer; t2: Integer);
2
3
4
5
6
# 5.2.2.1.4. addOffset方法
//功能:控制每张标签的停止位置
//参数:offset: 停止偏移量 mm
//返回值:无
procedure addOffset(offset: Integer); cdecl; // (I)V
2
3
4
# 5.2.2.1.5. addSpeed方法
//功能:设置打印速度
//参数:speed: 打印速度
//返回值:无
//procedure addSpeed(speed: TCCGPrinter_LabelCommand_SPEED);
2
3
4
# 5.2.2.1.6. addDensity方法
//功能:设置打印浓度
//参数:density: 打印浓度
//返回值:无
procedure addDensity(density: TCCGPrinter_LabelCommand_DNESITY);
2
3
4
# 5.2.2.1.7. addDirection方法
//功能:设置打印方向和镜像
//参数:direction: 打印方向
//mirror: 是否镜像
procedure addDirection(direction: TCCGPrinter_LabelCommand_DIRECTION;mirror: TCCGPrinter_LabelCommand_MIRROR);
2
3
4
# 5.2.2.1.8. addReference方法
//功能:设置原点坐标,原点坐标位置与 DIRECION 设置有关
//参数:x :原点横坐标
//y:原点纵坐标
procedure addReference(x: Integer; y: Integer);
2
3
4
# 5.2.2.1.9. addCls方法
//功能:清除打印缓冲区数据
//参数:无
procedure addCls;
2
3
# 5.2.2.1.10. addFeed方法
//功能:走纸
//参数:dot:走纸距离 单位 点
//返回值:无
procedure addFeed(dot: Integer);
2
3
4
# 5.2.2.1.11. addBackFeed方法
//功能:退纸
//参数:dot:退纸距离 单位 点
//返回值:无
procedure addBackFeed(dot: Integer);
2
3
4
# 5.2.2.1.12. addFormFeed方法
//功能:走一张标签距离
//参数:无
//返回值:无
procedure addFormFeed;
2
3
4
# 5.2.2.1.13. addHome方法
//功能:标签位置进行一次校准
//参数:无
//返回值:无
procedure addHome;
2
3
4
# 5.2.2.1.14. addPrint方法
//功能:打印标签
//参数:m 为打印的份数
//返回值:无
procedure addPrint(m: Integer); overload;
procedure addPrint(m, n: Integer); overload;
2
3
4
5
# 5.2.2.1.15. addCodePage方法
//功能:设置国际代码页
//参数:page :国际代码页
//返回值:无
procedure addCodePage(page: TCCGPrinter_LabelCommand_CODEPAGE);
2
3
4
# 5.2.2.1.16. addSound方法
//功能:设置蜂鸣器
//参数:level: 声音阶级
//Interval: 声音长短
//返回值:无
procedure addSound(level: Integer; interval: Integer);
2
3
4
5
# 5.2.2.1.17. addLimitFeed方法
//功能:用于设置打印机走纸时,若走过设定长度仍无法检测到间隙,则打印机报错
//参数:n : 走纸长度 单位 mm
//返回值:无
procedure addLimitFeed(n: Integer);
2
3
4
# 5.2.2.1.18. addBar方法
//功能:在打印缓冲区域上绘制黑块
//参数:x:起始横坐标
//y:起始纵坐标
//width:线宽
//height:线高
//返回值:无
procedure addBar(x: Integer; y: Integer; width: Integer; height: Integer);
2
3
4
5
6
7
# 5.2.2.1.19. add1DBarcode方法
//功能:在打印缓冲区域绘制一维条码
//参数:x:起始横坐标
//y:起始纵坐标
//type:条码类型
//height:条码高度
//readable:是否打印可识别字符
//rotation:条码旋转角度 0°、 90°、 180°、 270°
//content:条码数据,数据需参考条码规则输入
//注意:打印 CODE128 码时默认为 CODEB,如需打印 CODEA 或 CODEC 请按以下规则输入
//返回值:无
procedure add1DBarcode(x: Integer; y: Integer;atype: TCCGPrinter_LabelCommand_BARCODETYPE; height: Integer;readable: TCCGPrinter_LabelCommand_READABEL;rotation: TCCGPrinter_LabelCommand_ROTATION; content: String);
2
3
4
5
6
7
8
9
10
11
# 5.2.2.1.20. addBox方法
//功能:在打印缓冲区域绘制矩形
//参数:x:起始横坐标
//y:起始纵坐标
//xend:终点横坐标
//yend:终点纵坐标
//返回值:无
procedure addBox(x: Integer; y: Integer; xend: Integer; yend: Integer);
2
3
4
5
6
7
# 5.2.2.1.21. addBitmap方法
//功能:在打印缓冲区域绘制位图
//参数:x:起始横坐标
//y:起始纵坐标
//mode:位图模式
//nWidth:位图打印的宽度
//b:位图数据
procedure addBitmap(x: Integer; y: Integer;mode: TCCGPrinter_LabelCommand_BITMAP_MODE; nWidth: Integer; b: TBitmap);
2
3
4
5
6
7
# 5.2.2.1.22. addErase方法
{
功能:擦除打印缓冲区中指定区域的数据
参数:x:起始横坐标
y:起始纵坐标
xwidth:横向宽度
yheight:纵向高度
}
procedure addErase(x: Integer; y: Integer; xwidth: Integer; yheight: Integer);
2
3
4
5
6
7
8
# 5.2.2.1.23. addReverse方法
{
功能:将指定区域的数据黑白反色
参数:x:起始横坐标
y:起始纵坐标
xwidth:横向宽度
yheight:纵向高度
}
procedure addReverse(x: Integer; y: Integer; xwidth: Integer;yheight: Integer);
2
3
4
5
6
7
8
# 5.2.2.1.24. addText方法
{
功能:在打印缓冲区中绘制文字
参数:x:起始横坐标
y:起始纵坐标
font:字体类型
enum FONTTYPE {
FONT_1
("1"), 8x12 dot 英文和数字
FONT_2
("2"), 12x20 dot 英文和数字
FONT_3
("3"), 16x24 dot 英文和数字
FONT_4
("4"), 24x32 dot 英文和数字
FONT_5
("5"), 32x48 dot 英文和数字
FONT_6
("6"), 14x19 dot 英文和数字
FONT_7
("7"), 21x27 dot 英文和数字
FONT_8
("8"), 14x25 dot 英文和数字
SIMPLIFIED_CHINESE("TSS24.BF2"), 简体中文
TRADITIONAL_ CHINESE ("TST24.BF2"), 繁体中文
KOREAN("K"); 韩文
rotation:旋转角度 0°、 90°、 180°、 270°
xscal:横向放大系数 1-10 倍
yscal:纵向放大系数 1-10 倍
text:文字字符串
}
procedure addText(x: Integer; y: Integer;font: TCCGPrinter_LabelCommand_FONTTYPE;rotation: TCCGPrinter_LabelCommand_ROTATION;Xscal: TCCGPrinter_LabelCommand_FONTMUL;Yscal: TCCGPrinter_LabelCommand_FONTMUL; text: String);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 5.2.2.1.25. addQRCode方法
{
功能:在打印缓冲区中绘制二维码
参数:x:起始横坐标
y:起始纵坐标
level:纠错级别
cellwidth:单元大小
rotation:旋转角度 0°、 90°、 180°、 270°
data:文字字符串
返回值:无
}
procedure addQRCode(x: Integer; y: Integer;level: TCCGPrinter_LabelCommand_EEC; cellwidth: Integer;rotation: TCCGPrinter_LabelCommand_ROTATION; data: String);
2
3
4
5
6
7
8
9
10
11
# 5.2.2.1.26. addPeel方法
{
功能:设置剥离功能是否开启,仅限于部分机型,默认关闭
参数:enable 是否可用
返回值:无
}
procedure addPeel(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.27. addTear方法
{
功能:设置撕离功能是否开启,默认开启
参数:enable 是否可用
返回值:无
}
procedure addTear(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.28. addCut方法
{
功能:设置切刀功能是否开启,仅限于部分机型
参数:enable 是否使能
返回值:无
}
procedure addCut(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.29. addReprint方法
{
功能:设置打印机出现错误时,是否打印上一张内容,默认开启
参数:enable 是否使能
返回值:无
}
procedure addReprint(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.30. addPrintKey方法
{
功能:设置是否按走纸键打印最近一张标签
参数:enable 是否使能
返回值:无
}
procedure addPrintKey(enable: TCCGPrinter_EscCommand_ENABLE);
2
3
4
5
6
# 5.2.2.1.31. addPrintKeyM方法
{
功能:设置按走纸键打印最近一张标签的份数
参数:m:打印份数
返回值:无
}
procedure addPrintKeyM(m: Integer);
2
3
4
5
6
# 5.3. 参数说明
以下是TfxGPPrinter组件使用到的枚举类型
//钱箱引脚号
TCCGPrinter_LabelCommand_FOOT = (FOOT_F2, FOOT_F5);
//打印速度
TCCGPrinter_LabelCommand_SPEED = (SPEED1DIV5, SPEED2, SPEED3, SPEED4);
//打印浓度
TCCGPrinter_LabelCommand_DNESITY = (DNESITY0, DNESITY1, DNESITY2, DNESITY3,DNESITY4,
DNESITY5, DNESITY6, DNESITY7, DNESITY8, DNESITY9, DNESITY10,DNESITY11, DNESITY12, DNESITY13, DNESITY14, DNESITY15);
//打印方向
TCCGPrinter_LabelCommand_DIRECTION = (DIRECTION_FORWARD(向前), DIRECTION_BACKWARD(向后));
//打印镜像
TCCGPrinter_LabelCommand_MIRROR = (MIRROR_NORMAL(正常), MIRROR_MIRROR(镜像));
//国际代码页
TCCGPrinter_LabelCommand_CODEPAGE = (PC437, PC850, PC852, PC860, PC863, PC865,WPC1250, WPC1252, WPC1253, WPC1254);
//一维条码类型
TCCGPrinter_LabelCommand_BARCODETYPE = (CODE128, CODE128M, EAN128, ITF25,
ITF25C, CODE39, CODE39C, CODE39S, CODE93, EAN13, EAN13_2, EAN13_5, EAN8,
EAN8_2, EAN8_5, CODABAR, POST, UPCA, UPCA_2, UPCA_5, UPCE, UPCE_2, UPCE_5,
CPOST, MSI, MSIC, PLESSEY, ITF14, EAN14);
//是否打印可识别字符
TCCGPrinter_LabelCommand_READABEL = (DISABLE, EANBEL);
//旋转角度
TCCGPrinter_LabelCommand_ROTATION = (ROTATION_0, ROTATION_90, ROTATION_180,
ROTATION_270);
//位图模式
TCCGPrinter_LabelCommand_BITMAP_MODE = (BITMAP_MODE_OVERWRITE(覆盖), BITMAP_MODE_OR, BITMAP_MODE_XOR);
//字体类型
TCCGPrinter_LabelCommand_FONTTYPE = (FONT_1, FONT_2, FONT_3, FONT_4, FONT_5,FONT_6, FONT_7, FONT_8, FONT_9,
FONT_10, SIMPLIFIED_CHINESE,TRADITIONAL_CHINESE, KOREAN);
//放大系数
TCCGPrinter_LabelCommand_FONTMUL = (MUL_1, MUL_2, MUL_3, MUL_4, MUL_5, MUL_6,
MUL_7, MUL_8, MUL_9, MUL_10);
//纠错级别
TCCGPrinter_LabelCommand_EEC = (LEVEL_L, LEVEL_M, LEVEL_Q, LEVEL_H);
//是否可用
TCCGPrinter_EscCommand_ENABLE = (ENABLE_ON, ENABLE_OFF);
TCCGPrinter_EscCommand_JUSTIFICATION = (LEFT, CENTER, RIGHT);
TCCGPrinter_EscCommand_FONT = (FONTA, FONTB);
TCCGPrinter_EscCommand_ErrorCorrectionLevelForQRCode=(QRCodeLEVEL_L=$30,QRCodeLEVEL_M=$31,QRCodeLEVEL_Q=$32,QRCodeLEVEL_H=$33);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 5.4. 示例
通过TfxGPPrinter组件,连接佳博蓝牙标签打印机,实现打印功能。
依照下图,创建一个窗体。
- 具体实现如下:
//连接蓝牙标签打印机
Procedure fxButton1OnClick(Sender: TObject);
Begin
AGPrinter.BluetoothMacAddress:='DC:0D:30:75:4B:6C'; //将蓝牙地址赋值给控件
if AGPrinter.OpenPort then
showmessage('连接成功!')
else
showmessage('连接失败!');
End;
//打印标签
Procedure fxButton2OnClick(Sender: TObject);
var
ALabelCommand: TCCGPrinterLabelCommand;
fxXFVoiceIAT1:TfxButton;
Begin
ALabelCommand := TCCGPrinterLabelCommand.Create; //创建标签打印对象
ALabelCommand.addCls; // 清除打印缓冲区数据
ALabelCommand.addSize(80, 60); // 设置标签大小 mm
ALabelCommand.addGap(2); // 设置标签间隙,按照实际尺寸设置,如果为无间隙纸则设置为0
ALabelCommand.addDirection(DIRECTION_FORWARD,MIRROR_NORMAL);
ALabelCommand.addReference(0, 0); // 设置原点坐标
try
ALabelCommand.addText(8 * 2, 4 * 5,
SIMPLIFIED_CHINESE,
ROTATION_0, //旋转
MUL_2, //
MUL_2, '姓名:爱招飞');
ALabelCommand.addText(8 * 2, 4 * 15,
SIMPLIFIED_CHINESE,
ROTATION_0,
MUL_1,
MUL_1, '性别:男');
ALabelCommand.addText(8 * 2, 4 * 25,
SIMPLIFIED_CHINESE,
ROTATION_0,
MUL_1,
MUL_1, '年龄:99岁');
ALabelCommand.add1DBarcode(8 * 2, 4 * 35,
CODE128, 8 * 12,
EANBEL,
ROTATION_0, '18658867688');
ALabelCommand.addQRCode(8 * 20, 4 * 45,
LEVEL_L, 5,
ROTATION_0, 'PinToo(拼图) 二维码');
Finally
ALabelCommand.addPrint(1,1); // 设置打印份数
ALabelCommand.addSound(2, 100); // 设置蜂鸣器
// 发送打印标签命令
AGPrinter.sendLabelCommand(ALabelCommand);
ALabelCommand.Free;
End;
End;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
- 标签
# 6. TfxNFC
- 引用单元 CCNFC
TfxNFC是一个NFC组件,可以通过该组件读取NFC信息。
# 6.1. 方法(Methods)
- TfxNFC组件主要方法
方法 | 功能说明 |
---|---|
IsNFCUse | 判断设备是否支持NFC功能 |
IsNFCEnabled | 判断设备是否启用NFC功能 |
readNfcTagText | 读取NFC信息 |
# 6.2. 事件(Events)
- TfxNFC组件主要事件
事件 | 何时触发 |
---|---|
onTagText | 当检测到NFC时触发并反馈回NFC信息 |
# 6.2.1. onTagText事件
property onTagText: TOnTagText read FOnTagText write SetOnTagText;
当检测到NFC时触发并反馈回NFC信息。
# 6.3. 示例
//手动读取NFC信息
Procedure fxButton1OnClick(Sender: TObject);
Begin
fxMemo1.Lines.Add('NFC Value: '+fxNFC1.readNfcTagText);
End;
//自动感应NFC并读取信息
Procedure fxNFC1onTagText(ASender: TObject; ATagText: string);
Begin
fxMemo1.Lines.Add('NFC Value: '+ATagText);
End;
//判断设备是否支持NFC功能
Procedure fxButton2OnClick(Sender: TObject);
Begin
if fxNFC1.IsNFCUse Then
Showmessage('设备支持NFC功能!')
else
Showmessage('设备不支持NFC功能!')
End;
//判断设备NFC功能是否开启
Procedure fxButton3OnClick(Sender: TObject);
Begin
if fxNFC1.IsNFCEnabled Then
Showmessage('设备已开启NFC!')
else
Showmessage('设备已未开启NFC!')
End;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 7. TfxSdkCommLib
- 引用单元 CCSdkCommLib
调用安卓原生库。
您可以通过TfxSdkCommLib组件来调用安卓原生库的功能,如拨打电话、发送短信、开关WIFI等。
# 7.1. 属性(Properties)
- TfxSdkCommLib组件主要方法
属性 | 功能说明 |
---|---|
getDeviceId | 获取设备唯一ID |
isGpsEnabled | 判断GPS是否打开 |
openGPSSettings | 打开GPS设置界面 |
setGPSEnabled | 打开或关闭GPS |
hasSDCard | 是否有SD卡 |
sendMessageDirectly | 直接发送短信 |
sendMessage | 调出发送短信界面,发送短信 |
callPhones | 直接拨打电话 |
dialPhones | 调出拨号界面,拨打电话 |
openWifiSettings | 打开WIFI设置界面 |
isWifiEnabled | 判断WIFI状态 |
setWifiEnabled | 强制打开或关闭WIFI |
isWifiConnected | 判断Wifi是否连接 |
openBlueToothSettings | 打开蓝牙设置 |
isBluetoothSupported | 判断手机是否支持蓝牙 |
isBluetoothEnabled | 判断蓝牙状态 |
turnOnBluetooth | 强制打开蓝牙 |
turnOffBluetooth | 强制关闭蓝牙 |
openApn | 打开APN设置界面 |
vibrator | 调用手机震动 |
# 7.1.1. getDeviceId方法
function getDeviceId: string;
获取设备唯一ID。
var
v:string:
begin
v := fxSdkCommLib1.getDeviceId;
end;
2
3
4
5
# 7.1.2. isGpsEnabled方法
function isGpsEnabled: Boolean;
判断设备GPS是否打开 。
# 7.1.3. openGPSSettings方法
procedure openGPSSettings;
打开设备GPS设置界面。
if not fxSdkCommLib1.isGpsEnabled then
begin
showmessage('GPS状态:关闭!');
end
else
begin
showmessage('GPS状态:打开!');
end;
2
3
4
5
6
7
8
# 7.1.4. setGPSEnabled方法
procedure setGPSEnabled(AGPSEnabled: Boolean);
打开或关闭GPS。
//强制打开GPS
fxSdkCommLib1.setGPSEnabled(True);
//强制关闭GPS
fxSdkCommLib1.setGPSEnabled(false);
2
3
4
# 7.1.5. hasSDCard方法
function hasSDCard: Boolean;
判断设备是否有SD卡。
if not fxSdkCommLib1.hasSDCard then
begin
showmessage('没有SD卡!悠着点!');
end
else
begin
showmessage('有SD卡!该你任性!');
end;
2
3
4
5
6
7
8
# 7.1.6. sendMessageDirectly方法
procedure sendMessageDirectly(phoneNumber: String; smsContent: String);
指定一个号码,直接发送短信。
fxSdkCommLib1.sendMessageDirectly('18688889999', '欢迎使用这是PinToo');
# 7.1.7. sendMessage方法
procedure sendMessage(phoneNumber: String; smsContent: String);
调出发送短信界面,发送短信。
fxSdkCommLib1.sendMessage('18688889999', '欢迎使用这是PinToo!');
# 7.1.8. callPhones方法
procedure callPhones(phoneNumber: String);
指定一个号码,直接拨打电话。
fxSdkCommLib1.callPhones('18688889999');
# 7.1.9. dialPhones方法
procedure dialPhones(phoneNumber: String);
调出拨号界面,拨打电话。
fxSdkCommLib1.dialPhones('18688889999');
# 7.1.10. openWifiSettings方法
procedure openWifiSettings;
打开设备WIFI设置界面。
fxSdkCommLib1.openWifiSettings;
# 7.1.11. isWifiEnabled方法
function isWifiEnabled: Boolean;
判断设备WIFI连接状态。
if not fxSdkCommLib1.isWifiEnabled then
begin
showmessage('Wifi状态:关闭!');
end
else
begin
showmessage('Wifi状态:打开!');
end;
2
3
4
5
6
7
8
# 7.1.12. setWifiEnabled方法
procedure setWifiEnabled(AWifiEndabled: Boolean);
强制打开或关闭WIFI。
//强制打开WIFI
fxSdkCommLib1.setWifiEnabled(True);
//强制关闭WIFI
fxSdkCommLib1.setWifiEnabled(false);
2
3
4
# 7.1.13. isWifiConnected方法
function isWifiConnected: Boolean;
判断设备Wifi是否连接。
if not fxSdkCommLib1.isWifiConnected then
begin
showmessage('Wifi没有连接!');
end
else
begin
showmessage('Wifi已连接!');
end;
2
3
4
5
6
7
8
# 7.1.14. openBlueToothSettings方法
procedure openBlueToothSettings;
打开蓝牙设置。
# 7.1.15. isBluetoothSupported方法
function isBluetoothSupported: Boolean;
判断设备是否支持蓝牙。
# 7.1.16. isBluetoothEnabled方法
function isBluetoothEnabled: Boolean;
判断设备蓝牙状态。
if not fxSdkCommLib1.isBluetoothSupported then
begin
showmessage('搜集不支持蓝牙!');
end
else
begin
showmessage('手机支持蓝牙!');
end;
2
3
4
5
6
7
8
# 7.1.17. turnOnBluetooth方法
function turnOnBluetooth: Boolean;
强制打开蓝牙。
fxSdkCommLib1.turnOnBluetooth;
# 7.1.18. turnOffBluetooth方法
procedure turnOffBluetooth;
强制关闭蓝牙。
fxSdkCommLib1.turnOffBluetooth;
# 7.1.19. openApn方法
procedure openApn;
打开APN设置界面。
fxSdkCommLib1.openApn;
# 7.1.20. vibrator方法
procedure vibrator(AMilliseconds: Int64 = 1000);
调用手机震动。
//震动五秒
fxSdkCommLib1.vibrator(5000);
2
# 8. TfxSignaturePad
- 引用单元 CCSignaturePad
一个手写板签名组件。
你可以通过TfxSignaturePad来实现电子签名功能。

# 8.1. 属性(Properties)
- TfxSignaturePad组件主要属性
属性 | 功能说明 |
---|---|
SignatureBitmap | 手写签名图 |
# 8.1.1. SignatureBitmap属性
手写签名图,手写签名完成时,图像存储在这个属性中。
//将签名图显示在图片组件
fximage1.Bitmap := fxSignaturePad1.SignatureBitmap;
2
# 8.2. 方法(Methods)
- TfxSignaturePad组件主要方法
方法 | 功能说明 |
---|---|
Clear | 清除签名 |
# 8.2.1. Clear方法
清除手写签名图。
//清除签名
fxSignaturePad1.clear;
2
# 9. TfxXFVoiceTTS
- 引用单元 CCXFVoiceTTS
TfxXFVoiceTTS是一个基于讯飞技术的可以将语音转换成文字的组件。
# 9.1. 属性(Properties)
- TfxXFVoiceIAT组件主要属性
属性 | 功能说明 |
---|---|
AppId | 指定讯飞AppId |
Lag | 指定语音口音 |
# 9.1.1. AppId属性
AppId是一个必要的属性,它需要到讯飞官方申请。https://www.iflyrec.com/
# 9.1.2. Lag属性
Lag是指语音的口音类型,默认为mandarin(标准普通话)。
# 9.2. 事件(Events)
*TfxXFVoiceIAT组件主要事件
事件 | 何时触发 |
---|---|
OnRecognizerResult | 语音识别成功后触发 |
# 9.2.1. OnRecognizerResult事件
语音识别成功返回文本内容。
Procedure fxXFVoiceIAT1OnRecognizerResult(Sender: TObject; AResult: string);
Begin
fxmemo1.Lines.Add(AResult);
End;
2
3
4
# 9.3. 方法(Methods)
- TfxXFVoiceIAT组件主要方法
方法 | 功能说明 |
---|---|
IAT_StartListening | 开始监听语音 |
IAT_StopListening | 停止语单识别 |
IAT_Cancel | 取消语音识别 |
IAT_UploadContacts | 上传联系人 |
IAT_UploadUserwords | 上传词条 |
# 9.3.1. IAT_StartListening方法
procedure IAT_StartListening;overload;
procedure IAT_StartListening(ACallbackProc: TProc<System.string>);overload;
2
执行此方法,设备麦克风会监听我们说出来的语音,然后将语音转换为文本内容。
fxXFVoiceIAT1.IAT_StartListening(Nil);
# 9.3.2. IAT_StopListening方法
procedure IAT_StopListening;
执行此方法,停止语音识别。
fxXFVoiceIAT1.IAT_StopListening;
# 9.3.3. IAT_Cancel方法
procedure IAT_Cancel;
执行此方法,取消语音识别。
fxXFVoiceIAT1.IAT_Cancel;
# 9.3.4. IAT_UploadContacts方法
procedure IAT_UploadContacts;
上传联系人、词表,可以使云端识别联系人和词表更加准确,这里上传的内容对语义理解同样有效。
fxXFVoiceIAT1.IAT_UploadContacts;
# 9.3.5. IAT_UploadUserwords方法
procedure IAT_UploadUserwords(Userwords: string);
上传联系人、词表,可以使云端识别联系人和词表更加准确,这里上传的内容对语义理解同样有效。
fxXFVoiceIAT1.IAT_UploadUserwords('{"userword":[{"name":"我的常用词","words":["佳晨实业","蜀南庭苑","高兰路","复联二"]}]}');
# 10. TfxXFVoiceIAT
- 引用单元 CCXFVoiceIAT
TfxXFVoiceTTS是一个基于讯飞技术的可以将文字转换成语音的组件。
# 10.1. 属性(Properties)
- TfxXFVoiceIAT组件主要属性
属性 | 功能说明 |
---|---|
AppId | 指定讯飞AppId |
Voicer | 指定语音类型 |
# 10.1.1. AppId属性
AppId是一个必要的属性,它需要到讯飞官方申请。https://www.iflyrec.com/
# 10.1.2. Voicer属性
Voicer属性是指定文字转换成语音后,以什么语音类型播放。
- 语音类型如下:
类型 | 说明 |
---|---|
xiaoyan | 小燕 青年女声 中英文(普通话) 默认 |
xiaoyu | 小宇 青年男声 中英文(普通话) |
catherine | 凯瑟琳 青年女声 英文 |
henry | 亨利 青年男声 英文 |
vimary | 玛丽 青年女声 英文 |
vixy | 小研 青年女声 中英文(普通话) |
xiaoqi | 女声 中英文(普通话) |
vixf | 小峰 青年男声 中英文(普通话) |
xiaomei | 小梅 青年女声 中英文(粤语) |
vixl | 小莉 青年女声 中英文(台湾普通话) |
xiaolin | 晓琳 青年女声 中英文(台湾普通话) |
xiaorong | 小蓉 青年女声 汉语(四川话) |
vixyun | 小芸 青年女声 汉语(东北话) |
xiaoqian | 小倩 青年女声 汉语(东北话) |
xiaokun | 小坤 青年男声 汉语(河南话) |
xiaoqiang | 小强 青年男声 汉语(湖南话) |
vixying | 楠楠 童年女声 汉语(普通话) |
xiaoxin | 楠楠 童年女声 汉语(普通话) |
nannan | 楠楠 童年女声 汉语(普通话) |
vils | 老孙 老年男声 汉语(普通话) |
Mariane | Mariane 法语 |
Allabent | Allabent 俄语 |
Gabriela | Allabent 俄语 |
Abha | Abha 印地语 |
XiaoYun | Abha 印地语 |
# 10.2. 方法(Methods)
- TfxXFVoiceIAT组件主要方法
方法 | 功能说明 |
---|---|
TTS_Play | 朗读 |
TTS_Cancel | 取消播放 |
TTS_Pause | 暂停播放 |
TTS_Resume | 恢复播放 |
# 10.2.1. TTS_Play方法
{
功能:文字转语音播放
参数:ATTS_Text 需要转换为语音的文本内容
}
procedure TTS_Play(ATTS_Text: string);
2
3
4
5
# 10.3. 示例
fxXFVoiceTTS1.AppId := '指定一个AppId';
fxXFVoiceTTS1.Voicer := 'xiaomei'; //指定语音类型
fxXFVoiceTTS1.TTS_Play('我是中国人!');
2
3
# 11. TfxScrollText组件
- 引用单元 CCScrollText
一个滚动字幕组件。
# 11.1. 示列
演示增加滚动字幕:
var
Li:TCCScrollTextItem;
begin
Li := fxScrollText1.Items.add;
Li.Text := '庆祝中华人民共和国成立70周年!';
Li := fxScrollText1.Items.add;
Li.Text := '中国人民万岁!!!';
fxScrollText1.StartScroll;
end.
2
3
4
5
6
7
8
9
10
11
12
示例运行结果:
# 12. TfxWebView组件
- 引用单元 CC5WebView
一个Web浏览器,可以进行网页浏览。
# 12.1. 示例
指定一个网址实现打开网页的功能。
fxWebView1.loadURL('Http://www.baidu.com');
# 13. fxTbsVideoPlayer
- 引用单元 CCTbsVideoPlayer
视频播放控件。
一行代码搞定播放: fxTbsVideoPlayer1.openVideo('rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov');
播放器同时支持页面,小窗,全屏播放体验,强大的解码能力,包括mp4,rmvb,flv,avi等26种视频格式支持。
TBS播放器的播放场景不仅局限于H5页面播放,也可以接入一般的视频流链接,比如本地文件,网络的视频流链接。
示例
//播放MP4
CCTbsVideoPlayer1.openVideo('http://39.107.118.131/uploads/Doc/leijia1.mp4');
//RTSP协议直播源
CCTbsVideoPlayer1.openVideo('rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov');
//CCTV6高清
CCTbsVideoPlayer1.openVideo('http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8');
//rtmp直播
CCTbsVideoPlayer1.openVideo('rtmp://47.52.36.155:8090/kk2/kkvideocg88');
2
3
4
5
6
7
8
# 14. TfxFlying
- 引用单元 Flying
TfxFlying组件是配合Flying使用的组件,将必要的打印配置传递给该组件的属性,执行组件的方法即可将数据传递至打印服务器进行打印操作。在使用该组件前请先阅读Flying使用手册。
# 14.1. 属性
# 14.1.1. HTTPOptions
使用 HTTP 打印模式时使用的属性选项。其中的相关属性项目说明如下:
属性 | 说明 |
---|---|
Host | Flying打印服务端地址 |
Port | Flying HTTP/WebSocket 打印服务监听的端口号 |
# 14.1.2. MailOptions
邮件相关设置选项。
属性 | 说明 |
---|---|
Addr | 接收邮箱的地址 |
Body | 邮件的正文内容 |
Enable | 是否启用邮件发送的功能 |
Subject | 邮件的标题 |
# 14.1.3. MQTTOptions
使用 MQTT 打印模式时使用的属性选项。其中的相关属性项目说明如下:
属性 | 说明 |
---|---|
BrokerHost | MQTT 服务端的地址 |
BrokerPort | MQTT 服务端服务监听的端口号 |
Enabled | 设置是否启用 MQTT 连接 |
PrintPwd | 打印的密码 |
PrintTopic | 打印服务订阅的主题名称 |
UserName | MQTT 服务的用户名 |
UserPwd | MQTT 服务的密码 |
# 14.1.4. PrintOptions
打印服务的相关设置项。
属性 | 说明 |
---|---|
Data | 输入的打印数据,可通过 AddPrintData 方法自动生成 |
ExportFileType | 设置导出的文件类型 |
ExportFileUrl | 设置导出文件的URL |
Preview | 设置是否启用文件预览 |
PrintCopies | 设置文件的打印份数 |
PrinterName | 设置打印机的名称,可通过 GetPrinerList 方法获取打印机名称 |
PrintOffsetX | 打印偏移 X |
PrintOffsetY | 打印偏移 Y |
PrintType | 设置打印模式,可选 HTTP 、MQTT 、WebSocket |
ReportName | 设置打印的报表模板的名称,可指定报表模板的文件名(*.fr3 )或者报表模板的别名 |
ReportUrl | 设置打印的报表的输出地址 |
ReportVersion | 报表版本号 |
TaskID | 打印的任务ID,设置此项可用于区分不同打印客户端的打印请求 |
Token | 令牌,可用于打印客户端的身份认证 |
# 14.1.5. WebSocketOptions
使用 WebSocket 进行打印时的设置项。
属性 | 说明 |
---|---|
Authentication | 是否启用 WebSocket 身份认证 |
Compressed | 是否启用数据压缩 |
Enabled | 是否启用 WebSocket 通讯连接 |
Host | WebSocket 连接的主机的地址(Flying 服务端的地址) |
Password | WebSocket 使用身份认证连接时使用的密码 |
Port | WebSocket 服务监听的端口号 |
SSL | 是否启用 SSL 连接 |
SSLPort | 启用SSL 连接时监听的 WebSocket 服务端口号 |
URL | WebSocket 服务路径 |
UserName | WebSocket 使用身份认证连接时使用的用户名称 |
# 14.2. 事件
# 14.2.1. OnReceivedError事件
procedure FlyingOnReceivedError(ASender: TObject; AError:String);
当打印过程中出现错误时,可触发此事件。AError
中包含了错误的提示信息。
# 14.2.2. OnReceivedExport事件
procedure FlyingOnReceivedExport(ASender: TObject; AUrl:String);
当打印包含输出的文件时触发事件,AUrl
中包含了输出文件的路径。
# 14.2.3. OnReceviedPrinter事件
procedure FlyingOnReceivedExport(ASender: TObject; APrinterList:String);
当Flying 向客户端发送打印机列表的信息时触发事件。APrinterList
中包含了打印机列表等信息。
# 14.3. 方法(Methods)
- TfxFlying组件主要方法
方法 | 功能说明 |
---|---|
GetPrinterList | 获取Flying中间件的打印机列表 |
ReportPrint | 直接打印 |
ReportPreview | 报表预览 |
AddPrintData | 打印数据组装 |
# 14.3.1. GetPrinterList方法
procedure GetPrinterList;
获取Flying中间件所在电脑上的打印机列表,供客户端打印报表时选择。使用的方式见下方。在调用该方法后,会在OnReceived事件中看到获取的打印机列表地址。
//获取打印机列表
Procedure btnGetPrintListOnClick(Sender: TObject);
Begin
fxFlying1.GetPrinterList;
End;
Procedure fxFlying1OnReceivedPrinter(Sender: TObject; APrinterList: string);
Begin
fxComboboxList.Items.CommaText := APrinterList;
if fxComboBoxList.Items.Count <> 0 Then
fxComboBoxList.ItemIndex := 0;
fxComboBoxList.DropDown;
End;
2
3
4
5
6
7
8
9
10
11
12
13
# 14.3.2. ReportPrint方法
procedure ReportPrint;
ReportPrint方法是呼叫Flying中间件,进行报表打印。
Procedure fxSuperButtonPrintOnClick(Sender: TObject);
//打印
//Print
Begin
if fxcomboboxList.Count = 0 Then exit;
fxFlying1.PrintOptions.PrinterName := fxcomboboxList.Items[fxcomboboxList.ItemIndex];
fxRFDataSet1.SQL.Text := 'SELECT * FROM Basic_Unit';
fxRFDataSet1.OpenData;
fxRFDataSet1.PrintOptions.Data.Clear;
fxFlying1.AddPrintData(fxRFDataSet1,'A');
fxFlying1.ReportPrint;
end;
Procedure fxFlying1OnReceivedExport(Sender: TObject; AUrl: string);
Begin
fxShowFileView(Self.GetMsgLang('preview'),AUrl,'',Self.GetMsgLang('cancel'),Self.GetMsgLang('OK'))
End;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 14.3.3. ReportPreview方法
procedure ReportPreview;
ReportPreview方法是呼叫Flying中间件,进行报表输出,并回传到客户端显示。
Procedure fxSuperButtonPreviewOnClick(Sender: TObject);
//预览
//Preview
Begin
fxRFDataSet1.Connection := fxdm.DBConnection;
fxRFDataSet1.SQL.Text := 'SELECT * FROM Basic_Unit';
fxRFDataSet1.openData;
fxRFDataSet1.PrintOptions.Data.Clear;
fxFlying1.AddPrintData(fxRFDataSet1,'A');
fxFlying1.ReportPreview;
End;
Procedure fxFlying1OnReceivedExport(Sender: TObject; AUrl: string);
Begin
fxShowFileView(Self.GetMsgLang('preview'),AUrl,'',Self.GetMsgLang('cancel'),Self.GetMsgLang('OK'))
End;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 14.3.4. PrintPdf方法
procedure PrintPdf(AUrl: String);
从网络地址获取 PDF 文件并发送至 Flying 服务端执行打印。
# 14.3.5. PrintPic方法
procedure PrintPic(AUrl: String);
从网络地址获取图片文件并发送至 Flying 服务端执行打印。
# 15. TfxDateTimePickerTheme
- 引用单元 CCDateTimePickerTheme
TfxDateTimePickerTheme是配合TfxDateEdit
组件进行日期选择对话框样式的控制。
通过设置DialogTheme
属性完成主题的设置。
# 16. TfxVideoClient
- 引用单元 uVideoClient
TfxVideoClient是一个视频串流客户端组件,用来捕获网络摄像头视频流并转化成视频。
TfxVideoClient有三个重要属性分别是:CamType
摄像头类型,Url
摄像头网终地址,Active
激活。
- CamType属性说明
- ctESP32_CAM:ESP32-CAM摄像头
- ctCAM:非ESP32-CAM摄像头
Begin
fxVideoClient1.Url :='http://192.168.1.115'; //摄像头网络地址
fxVideoClient1.Active := true;//激活控件
End;
2
3
4
# 17. TfxDeviceInfo
- 引用单元 CCDeviceInfo
TfxDeviceInfo是一个获取手机信息的组件,可以获取手机IMEI和IMSI信息。
Begin
Showmessage(fxDeviceInfo1.IMEI);//手机序列号
Showmessage(fxDeviceInfo1.IMSI);//SIM卡串号
End;
2
3
4
# 18. TfxVideoServer
- 引用单元 uVideoClient、uVideoStream
TfxVideoServer 是一个视频服务组件,用于拍摄视频并进行实时直播。
# 18.1. 属性
属性 | 功能说明 |
---|---|
CameraComponent | 指定使用的相机组件,组件的类型为 TfxCameracomponent |
ComboBoxResolution | 指定分辨率选择的下拉框组件,组件的类型为 TfxComboBox |
FlashMode | 指定闪光灯模式 |
FocusMode | 指定相机对焦的模式 |
ImageViewer | 指定图片的查看组件,组件类型为 TfxImage |
Port | 设定视频查看的端口 |
Quality | 设定视频的画质 |
# 18.2. 方法
# 18.2.1. Start
procedure Start;
开启视频服务。
# 18.2.2. Stop
procedure Stop;
停止视频服务。
# 18.2.3. TakePicture
function TakePicture: String;
拍摄截图,返回截图所在的位置。
# 19. TfxVideoRecorder
- 引用单元 uVideoClient、uVideoStream
TfxVideoRecorder 是一个视频服务与录制组件,用于拍摄视频、录制视频与实时直播。
# 19.1. 属性
属性 | 功能说明 |
---|---|
Active | 是否启用激活组件 |
CameraIndex | 指定使用的相机序号 |
CaptureRate | 设定视频捕捉的帧率 |
FlashMode | 指定闪光灯的模式 |
FocusMode | 指定相机对焦的模式 |
MaxDuration | 指定视频的最长持续时间,如设定为0表示不限定持续时间 |
MaxFileSize | 指定最大的文件大小,如设定为0表示不进行限定 |
OutputFile | 指定输出的文件所在的目录以及名称,不设置则使用默认的设定进行存储 |
Port | 设定视频查看的端口 |
PreviewControl | 设定预览的控件名称 |
Profile | 设定视频预设的画质 |
VideoEncodingBitRate | 设定编码比特率 |
VideoFrameRate | 设定编码的帧率 |
VideoRecord | 是否启用视频录制的功能 |