版本:1.6.3-windows-cpp
命名空间:hspos
入口类:PrinterSdk
常量类:PrinterConstants
连接句柄:std::shared_ptr<IPrinterConnection>
头文件:#include "hspos/HsposPrinterSdk.hpp"
配套文档:PrinterSDK_使用说明书.md、PrinterSDK_Windows_CPP_API对照表.md
最后更新:2026-07-18
说明:本手册与 Android 版PrinterSDK_API_说明文档.pdf(1.6.3)及 Windows C# 版体例对齐;方法名为 C++ PascalCase。
HS-POS PrinterSDK Windows C++ 版提供与 Android 1.6.3 / Windows C# 版对齐的 ESC/POS + JPL 打印能力。业务代码通过单例 PrinterSdk::GetInstance() 完成连接、打印与状态查询。
典型流程
GetInstance()ConnectXxxPrinter(...) 获得 shared_ptr<IPrinterConnection>InitPrinter(conn)FeedAndCutPaper(conn) 或标签 LabelPagePrintDisconnectPrinter(conn)返回值语义
bool:指令成功写入连接为 trueshared_ptr:失败为空int / bool:按 PrinterConstants 状态位解释先 SetChineseMode,再 SetDoubleByteEncoding(..., DoubleByteEncodingGbk),并用 PrintTextInGbk。
切刀在打印头上方约 10–20mm。请使用 FeedAndCutPaper,或先 PrintAndFeedLines / FeedPaper(dots) 再 CutPaper。
注意:C++ FeedPaper(n) 的 n 是点(ESC J),不是行;走纸行请用 PrintAndFeedLines。
需以可读可写方式打开 USB;连接后先断开再重连。状态以 GetPrinterStatus / HasPaper / IsCoverOpen 为准。
Windows 无 hasUsbPermission / requestUsbPermission / onRequestPermissionsResult;请安装驱动后直接连接。
PrinterConstants)以下常量定义于 include/hspos/PrinterConstants.hpp,命名与 C# / Android 对齐(C++ 使用 PrinterConstants::Xxx)。
| 常量 | 定义 |
|---|---|
| AlignmentLeft | int = 0 |
| AlignmentCenter | int = 1 |
| AlignmentRight | int = 2 |
| CutFull | int = 0 |
| CutPartial | int = 1 |
| PaperWidth58Mm | int = 384 |
| PaperWidth80Mm | int = 576 |
| BarcodeHriNone | int = 0 |
| BarcodeHriBelow | int = 2 |
| BarcodeTypeUpcA | int = 0x41 |
| BarcodeTypeUpcE | int = 0x42 |
| BarcodeTypeEan13 | int = 0x43 |
| BarcodeTypeEan8 | int = 0x44 |
| BarcodeTypeCode39 | int = 0x45 |
| BarcodeTypeItf | int = 0x46 |
| BarcodeTypeCodabar | int = 0x47 |
| BarcodeTypeCode93 | int = 0x48 |
| BarcodeTypeCode128 | int = 0x49 |
| QrEccLevelL | int = 1 |
| QrEccLevelM | int = 2 |
| QrEccLevelQ | int = 3 |
| QrEccLevelH | int = 4 |
| StatusOffline | int = 0x00 |
| StatusOnline | int = 0x01 |
| StatusPaperOut | int = 0x02 |
| StatusCoverOpen | int = 0x04 |
| StatusTypePrinter | int = 1 |
| StatusTypeOffline | int = 2 |
| StatusTypeError | int = 3 |
| StatusTypePaperSensor | int = 4 |
| CashDrawerPin2 | int = 0 |
| CashDrawerPin5 | int = 1 |
| BeepDefaultCount | int = 1 |
| BeepDefaultDuration | int = 100 |
| DoubleByteEncodingGbk | int = 0 |
| DoubleByteEncodingUtf8 | int = 1 |
| DoubleByteEncodingBig5 | int = 3 |
| DoubleByteEncodingShiftJis | int = 4 |
| DoubleByteEncodingEucKr | int = 5 |
| PageDirectionLeftToRight | int = 0 |
| PageDirectionBottomToTop | int = 1 |
| PageDirectionRightToLeft | int = 2 |
| PageDirectionTopToBottom | int = 3 |
| LabelBarcodeTypeCode128 | int = 8 |
| LabelBarcodeHeightDefault | int = 80 |
| LabelBarcodeUnitWidth2 | int = 2 |
| RasterCompressionGsV0 | int = 0 |
| RasterCompressionLineRle | int = 1 |
| RasterCompressionJbig | int = 2 |
| RasterCompressionAuto | int = 3 |
| NvBitmapModeNormal | int = 0 |
获取 PrinterSdk 单例。Windows C++ 版无需 Context。
语法
static PrinterSdk& GetInstance();
// 获取 PrinterSdk 单例。Windows C++ 版无需 Context。
//
// 返回值
// 返回 `PrinterSdk&`。
释放 SDK 内部资源(连接缓存等)。
语法
void Release();
// 释放 SDK 内部资源(连接缓存等)。
//
// 返回值
// 无返回值。
同步连接网络打印机(TCP RAW,默认端口 9100)。
语法
std::shared_ptr<IPrinterConnection> ConnectNetworkPrinter(const std::string& host, int port = 9100);
// 同步连接网络打印机(TCP RAW,默认端口 9100)。
//
// host
// 详见方法说明 / 参数含义见用法示例。
// port
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
连接串口打印机(COM)。
语法
std::shared_ptr<IPrinterConnection> ConnectSerialPrinter(const SerialPortSettings& settings);
// 连接串口打印机(COM)。
//
// settings
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
连接串口打印机(COM)。
语法
std::shared_ptr<IPrinterConnection> ConnectSerialPrinter(const std::string& portName, int baudRate = 9600);
// 连接串口打印机(COM)。
//
// portName
// 详见方法说明 / 参数含义见用法示例。
// baudRate
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
连接 USB 打印机(USB00x 打印口或 SetupAPI 设备路径)。
语法
std::shared_ptr<IPrinterConnection> ConnectUsbPrinter(const std::string& portNameOrPath);
// 连接 USB 打印机(USB00x 打印口或 SetupAPI 设备路径)。
//
// portNameOrPath
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
连接 USB 打印机(USB00x 打印口或 SetupAPI 设备路径)。
语法
std::shared_ptr<IPrinterConnection> ConnectUsbPrinter(const UsbPrinterInfo& device);
// 连接 USB 打印机(USB00x 打印口或 SetupAPI 设备路径)。
//
// device
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
连接并口打印机(LPT,Windows 额外能力)。
语法
std::shared_ptr<IPrinterConnection> ConnectParallelPrinter(const std::string& portName);
// 连接并口打印机(LPT,Windows 额外能力)。
//
// portName
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
连接蓝牙打印机(SPP)。
语法
std::shared_ptr<IPrinterConnection> ConnectBluetoothPrinter(const std::string& address);
// 连接蓝牙打印机(SPP)。
//
// address
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
连接蓝牙打印机(SPP)。
语法
std::shared_ptr<IPrinterConnection> ConnectBluetoothPrinter(const BluetoothPrinterInfo& device, bool pairIfNeeded = true);
// 连接蓝牙打印机(SPP)。
//
// device
// 详见方法说明 / 参数含义见用法示例。
// pairIfNeeded
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 成功返回连接句柄,失败返回空 shared_ptr。
断开并释放连接。
语法
bool DisconnectPrinter(const std::shared_ptr<IPrinterConnection>& connection);
// 断开并释放连接。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
枚举本机串口名(COM1…)。
语法
static std::vector<std::string> ListSerialPorts();
// 枚举本机串口名(COM1…)。
//
// 返回值
// 返回 `static std::vector<std::string>`。
枚举本机 USB 打印机设备。
语法
static std::vector<UsbPrinterInfo> GetUsbDevices();
// 枚举本机 USB 打印机设备。
//
// 返回值
// 返回 `static std::vector<UsbPrinterInfo>`。
枚举并口设备名(LPT1…)。
语法
static std::vector<std::string> GetParallelDevices();
// 枚举并口设备名(LPT1…)。
//
// 返回值
// 返回 `static std::vector<std::string>`。
检测本机蓝牙适配器是否可用。
语法
static bool IsBluetoothAvailable();
// 检测本机蓝牙适配器是否可用。
//
// 返回值
// 返回 `static bool`。
获取已配对蓝牙设备列表。
语法
static std::vector<BluetoothPrinterInfo> GetBluetoothPairedDevices();
// 获取已配对蓝牙设备列表。
//
// 返回值
// 返回 `static std::vector<BluetoothPrinterInfo>`。
扫描附近蓝牙设备(阻塞)。
语法
static std::vector<BluetoothPrinterInfo> DiscoverBluetoothDevices(bool excludePaired = true);
// 扫描附近蓝牙设备(阻塞)。
//
// excludePaired
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `static std::vector<BluetoothPrinterInfo>`。
停止蓝牙扫描。
语法
static void StopBluetoothDiscovery();
// 停止蓝牙扫描。
//
// 返回值
// 返回 `static void`。
发起蓝牙配对。
语法
static bool PairBluetoothDevice(const std::string& address, const std::string& pin = "");
// 发起蓝牙配对。
//
// address
// 详见方法说明 / 参数含义见用法示例。
// pin
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `static bool`。
DLE EOT 实时状态查询。
语法
int QueryRtStatus(const std::shared_ptr<IPrinterConnection>& connection, int type);
// DLE EOT 实时状态查询。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// type
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `int`。
GS r 传输状态查询。
语法
int QueryTransmitStatus(const std::shared_ptr<IPrinterConnection>& connection, int type);
// GS r 传输状态查询。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// type
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `int`。
综合状态位(在线/缺纸/开盖)。
语法
int GetPrinterStatus(const std::shared_ptr<IPrinterConnection>& connection);
// 综合状态位(在线/缺纸/开盖)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `int`。
是否在线。
语法
bool IsPrinterOnline(const std::shared_ptr<IPrinterConnection>& connection);
// 是否在线。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
是否有纸。
语法
bool HasPaper(const std::shared_ptr<IPrinterConnection>& connection);
// 是否有纸。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
盖子是否打开。
语法
bool IsCoverOpen(const std::shared_ptr<IPrinterConnection>& connection);
// 盖子是否打开。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
初始化打印机(ESC @)。
语法
bool InitPrinter(const std::shared_ptr<IPrinterConnection>& connection);
// 初始化打印机(ESC @)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
复位打印机。
语法
bool ResetPrinter(const std::shared_ptr<IPrinterConnection>& connection);
// 复位打印机。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印文本(默认编码路径)。
语法
bool PrintText(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text);
// 打印文本(默认编码路径)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
以 UTF-8 编码打印文本。
语法
bool PrintTextInUtf8(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text);
// 以 UTF-8 编码打印文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
以 GBK 编码打印文本(推荐中文小票)。
语法
bool PrintTextInGbk(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text);
// 以 GBK 编码打印文本(推荐中文小票)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标准模式一行左右分列。
语法
bool PrintTextLineLeftRight(const std::shared_ptr<IPrinterConnection>& connection, const std::string& left, const std::string& right, int areaWidthDots, int charWidthDots);
// 标准模式一行左右分列。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// left
// 详见方法说明 / 参数含义见用法示例。
// right
// 详见方法说明 / 参数含义见用法示例。
// areaWidthDots
// 详见方法说明 / 参数含义见用法示例。
// charWidthDots
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置对齐方式(左/中/右)。
语法
bool SetAlignment(const std::shared_ptr<IPrinterConnection>& connection, int align);
// 设置对齐方式(左/中/右)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// align
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置加粗。
语法
bool SetBold(const std::shared_ptr<IPrinterConnection>& connection, bool bold);
// 设置加粗。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// bold
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置下划线。
语法
bool SetUnderline(const std::shared_ptr<IPrinterConnection>& connection, bool underline);
// 设置下划线。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// underline
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置反白。
语法
bool SetReverse(const std::shared_ptr<IPrinterConnection>& connection, bool reverse);
// 设置反白。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// reverse
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置字符宽高放大倍数(0–7)。
语法
bool SetTextScale(const std::shared_ptr<IPrinterConnection>& connection, int widthScale, int heightScale);
// 设置字符宽高放大倍数(0–7)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// widthScale
// 详见方法说明 / 参数含义见用法示例。
// heightScale
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置行距(点)。
语法
bool SetLineSpacing(const std::shared_ptr<IPrinterConnection>& connection, int spacing);
// 设置行距(点)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// spacing
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
进入汉字模式。
语法
bool SetChineseMode(const std::shared_ptr<IPrinterConnection>& connection);
// 进入汉字模式。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
进入单字节模式。
语法
bool SetSingleByteMode(const std::shared_ptr<IPrinterConnection>& connection);
// 进入单字节模式。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置双字节编码(GBK/UTF-8/BIG5/ShiftJIS/EUCKR)。
语法
bool SetDoubleByteEncoding(const std::shared_ptr<IPrinterConnection>& connection, int encoding);
// 设置双字节编码(GBK/UTF-8/BIG5/ShiftJIS/EUCKR)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// encoding
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
汉字倍宽倍高。
语法
bool SetChineseDoubleSize(const std::shared_ptr<IPrinterConnection>& connection, bool enable);
// 汉字倍宽倍高。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// enable
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置打印区域宽度(点)。
语法
bool SetPrintAreaWidth(const std::shared_ptr<IPrinterConnection>& connection, int width);
// 设置打印区域宽度(点)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置左边距(点)。
语法
bool SetPrintAreaLeftMargin(const std::shared_ptr<IPrinterConnection>& connection, int leftMargin);
// 设置左边距(点)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// leftMargin
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置条码高度。
语法
bool SetBarcodeHeight(const std::shared_ptr<IPrinterConnection>& connection, int height);
// 设置条码高度。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置条码模块宽度。
语法
bool SetBarcodeWidth(const std::shared_ptr<IPrinterConnection>& connection, int width);
// 设置条码模块宽度。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置条码 HRI 文字位置。
语法
bool SetBarcodeHriPosition(const std::shared_ptr<IPrinterConnection>& connection, int pos);
// 设置条码 HRI 文字位置。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// pos
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
换行(LF)。
语法
bool FeedLine(const std::shared_ptr<IPrinterConnection>& connection);
// 换行(LF)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
按点数走纸(ESC J n)。注意:C++ 参数单位是点,不是行。
语法
bool FeedPaper(const std::shared_ptr<IPrinterConnection>& connection, int dots);
// 按点数走纸(ESC J n)。注意:C++ 参数单位是点,不是行。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// dots
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印缓冲区并走纸 n 行(ESC d n)。
语法
bool PrintAndFeedLines(const std::shared_ptr<IPrinterConnection>& connection, int lines);
// 打印缓冲区并走纸 n 行(ESC d n)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// lines
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
切纸。CutPartial 使用 ESC m,CutFull 使用 ESC i。
语法
bool CutPaper(const std::shared_ptr<IPrinterConnection>& connection, int cutType);
// 切纸。CutPartial 使用 ESC m,CutFull 使用 ESC i。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// cutType
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
走纸越过切刀后半切(推荐票据收尾)。
语法
bool FeedAndCutPaper(const std::shared_ptr<IPrinterConnection>& connection);
// 走纸越过切刀后半切(推荐票据收尾)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印一维条码。
语法
bool PrintBarcode(const std::shared_ptr<IPrinterConnection>& connection, int type, const std::string& data, int hriPos, int height, int width);
// 打印一维条码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// type
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// hriPos
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印二维码(简化参数)。
语法
bool PrintQrCode(const std::shared_ptr<IPrinterConnection>& connection, const std::string& content, int size);
// 打印二维码(简化参数)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// content
// 详见方法说明 / 参数含义见用法示例。
// size
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印二维码(尺寸/对齐/纠错等级)。
语法
bool PrintQrCodeStandard(const std::shared_ptr<IPrinterConnection>& connection, const std::string& content, int size, int align, int eccLevel);
// 打印二维码(尺寸/对齐/纠错等级)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// content
// 详见方法说明 / 参数含义见用法示例。
// size
// 详见方法说明 / 参数含义见用法示例。
// align
// 详见方法说明 / 参数含义见用法示例。
// eccLevel
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印 PDF417(POS GS ( k)。
语法
bool PrintPdf417(const std::shared_ptr<IPrinterConnection>& connection, int columns, int rows, int moduleWidth, int rowHeight, int errorCorrectionLevel, int option, const std::string& data);
// 打印 PDF417(POS GS ( k)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// columns
// 详见方法说明 / 参数含义见用法示例。
// rows
// 详见方法说明 / 参数含义见用法示例。
// moduleWidth
// 详见方法说明 / 参数含义见用法示例。
// rowHeight
// 详见方法说明 / 参数含义见用法示例。
// errorCorrectionLevel
// 详见方法说明 / 参数含义见用法示例。
// option
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
并排打印双二维码。
语法
bool PrintDoubleQrCode(const std::shared_ptr<IPrinterConnection>& connection, int n, int qr1Pos, const std::string& qr1Data, int qr1Ecc, int qr1Ver, int qr2Pos, const std::string& qr2Data, int qr2Ecc, int qr2Ver);
// 并排打印双二维码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// n
// 详见方法说明 / 参数含义见用法示例。
// qr1Pos
// 详见方法说明 / 参数含义见用法示例。
// qr1Data
// 详见方法说明 / 参数含义见用法示例。
// qr1Ecc
// 详见方法说明 / 参数含义见用法示例。
// qr1Ver
// 详见方法说明 / 参数含义见用法示例。
// qr2Pos
// 详见方法说明 / 参数含义见用法示例。
// qr2Data
// 详见方法说明 / 参数含义见用法示例。
// qr2Ecc
// 详见方法说明 / 参数含义见用法示例。
// qr2Ver
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
双二维码手动示例指令。
语法
bool PrintDoubleQrCodeManualExample(const std::shared_ptr<IPrinterConnection>& connection);
// 双二维码手动示例指令。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
估算 QR 符号宽度(点)。
语法
int EstimateQrSymbolWidthDots(int version, int moduleSize) const;
// 估算 QR 符号宽度(点)。
//
// version
// 详见方法说明 / 参数含义见用法示例。
// moduleSize
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `int`。
打开钱箱。
语法
bool OpenCashDrawer(const std::shared_ptr<IPrinterConnection>& connection, int drawerIndex);
// 打开钱箱。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// drawerIndex
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
蜂鸣。
语法
bool Beep(const std::shared_ptr<IPrinterConnection>& connection, int count = 1, int duration = 100);
// 蜂鸣。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// count
// 详见方法说明 / 参数含义见用法示例。
// duration
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印自检页。
语法
bool SelfTest(const std::shared_ptr<IPrinterConnection>& connection);
// 打印自检页。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
发送原始 ESC/POS / JPL 字节。
语法
bool SendCommand(const std::shared_ptr<IPrinterConnection>& connection, const ByteBuffer& command);
// 发送原始 ESC/POS / JPL 字节。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// command
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
光栅图打印(ARGB 像素,GS v 0)。
语法
bool PrintRasterImageFromPixels(const std::shared_ptr<IPrinterConnection>& connection, const int* pixels, int width, int height, int targetWidth, int targetHeight = 0, int compressionMode = PrinterConstants::RasterCompressionAuto);
// 光栅图打印(ARGB 像素,GS v 0)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// pixels
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// targetWidth
// 详见方法说明 / 参数含义见用法示例。
// targetHeight
// 详见方法说明 / 参数含义见用法示例。
// compressionMode
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
从文件打印光栅图(WIC 解码)。
语法
bool PrintRasterImageFromFile(const std::shared_ptr<IPrinterConnection>& connection, const std::string& path);
// 从文件打印光栅图(WIC 解码)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// path
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
从文件打印光栅图(WIC 解码)。
语法
bool PrintRasterImageFromFile(const std::shared_ptr<IPrinterConnection>& connection, const std::string& path, int targetWidth, int targetHeight, int compressionMode);
// 从文件打印光栅图(WIC 解码)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// path
// 详见方法说明 / 参数含义见用法示例。
// targetWidth
// 详见方法说明 / 参数含义见用法示例。
// targetHeight
// 详见方法说明 / 参数含义见用法示例。
// compressionMode
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
从内存数据打印光栅图。
语法
bool PrintRasterImageFromData(const std::shared_ptr<IPrinterConnection>& connection, const uint8_t* data, size_t size);
// 从内存数据打印光栅图。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// size
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
从内存数据打印光栅图。
语法
bool PrintRasterImageFromData(const std::shared_ptr<IPrinterConnection>& connection, const uint8_t* data, size_t size, int targetWidth, int targetHeight, int compressionMode);
// 从内存数据打印光栅图。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// size
// 详见方法说明 / 参数含义见用法示例。
// targetWidth
// 详见方法说明 / 参数含义见用法示例。
// targetHeight
// 详见方法说明 / 参数含义见用法示例。
// compressionMode
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
从内存数据打印光栅图。
语法
bool PrintRasterImageFromData(const std::shared_ptr<IPrinterConnection>& connection, const std::vector<uint8_t>& data);
// 从内存数据打印光栅图。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
从内存数据打印光栅图。
语法
bool PrintRasterImageFromData(const std::shared_ptr<IPrinterConnection>& connection, const std::vector<uint8_t>& data, int targetWidth, int targetHeight, int compressionMode);
// 从内存数据打印光栅图。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// targetWidth
// 详见方法说明 / 参数含义见用法示例。
// targetHeight
// 详见方法说明 / 参数含义见用法示例。
// compressionMode
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
进入页模式。
语法
bool SelectPageMode(const std::shared_ptr<IPrinterConnection>& connection);
// 进入页模式。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
进入页模式并设置区域/单位。
语法
bool SelectPageModeEx(const std::shared_ptr<IPrinterConnection>& connection);
// 进入页模式并设置区域/单位。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
进入页模式并设置区域/单位。
语法
bool SelectPageModeEx(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int width, int height);
// 进入页模式并设置区域/单位。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
进入页模式并设置区域/单位。
语法
bool SelectPageModeEx(const std::shared_ptr<IPrinterConnection>& connection, int hu, int vu, int x, int y, int w, int h);
// 进入页模式并设置区域/单位。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// hu
// 详见方法说明 / 参数含义见用法示例。
// vu
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// w
// 详见方法说明 / 参数含义见用法示例。
// h
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
退出页模式。
语法
bool ExitPageMode(const std::shared_ptr<IPrinterConnection>& connection);
// 退出页模式。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印页模式缓冲。
语法
bool PagePrintPage(const std::shared_ptr<IPrinterConnection>& connection);
// 打印页模式缓冲。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
取消页模式数据。
语法
bool CancelPrintDataInPageMode(const std::shared_ptr<IPrinterConnection>& connection);
// 取消页模式数据。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
清空页模式缓冲。
语法
bool PageClearPage(const std::shared_ptr<IPrinterConnection>& connection);
// 清空页模式缓冲。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置运动单位。
语法
bool SetMovementUnits(const std::shared_ptr<IPrinterConnection>& connection, int x, int y);
// 设置运动单位。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置页模式打印区域。
语法
bool SetPrintAreaInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int width, int height);
// 设置页模式打印区域。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
设置页模式打印方向。
语法
bool SetPageModePrintDirection(const std::shared_ptr<IPrinterConnection>& connection, int direction);
// 设置页模式打印方向。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// direction
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式绘制文本。
语法
bool DrawTextInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& text);
// 页模式绘制文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式 UTF-8 文本。
语法
bool DrawTextUtf8InPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& text);
// 页模式 UTF-8 文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式 GBK 文本。
语法
bool DrawTextGbkInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& text);
// 页模式 GBK 文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式居中文本。
语法
bool DrawTextCenteredInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int pageWidth, int y, const std::string& text, int charWidthDots = 12);
// 页模式居中文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// pageWidth
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// charWidthDots
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式右对齐文本。
语法
bool DrawTextRightInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int pageWidth, int y, const std::string& text, int charWidthDots = 12);
// 页模式右对齐文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// pageWidth
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// charWidthDots
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式左右分列文本。
语法
bool DrawTextLineLeftRightInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int pageWidth, int y, const std::string& left, const std::string& right, int charWidthDots = 12);
// 页模式左右分列文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// pageWidth
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// left
// 详见方法说明 / 参数含义见用法示例。
// right
// 详见方法说明 / 参数含义见用法示例。
// charWidthDots
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式条码。
语法
bool DrawBarcodeInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int type, const std::string& data, int hriPos, int height, int width);
// 页模式条码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// type
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// hriPos
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式条码(HRI 居中)。
语法
bool DrawBarcodeInPageModeWithCenteredHri(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int type, const std::string& data, int height, int width, int hriGapDots);
// 页模式条码(HRI 居中)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// type
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// hriGapDots
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式二维码。
语法
bool DrawQrCodeInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int version, int eccLevel, const std::string& data);
// 页模式二维码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// version
// 详见方法说明 / 参数含义见用法示例。
// eccLevel
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式画线。
语法
bool DrawLineInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x1, int y1, int x2, int y2, int lineType = 1);
// 页模式画线。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x1
// 详见方法说明 / 参数含义见用法示例。
// y1
// 详见方法说明 / 参数含义见用法示例。
// x2
// 详见方法说明 / 参数含义见用法示例。
// y2
// 详见方法说明 / 参数含义见用法示例。
// lineType
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
页模式矩形。
语法
bool DrawRectangleInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int mode, int x, int y, int width, int height);
// 页模式矩形。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// mode
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
估算 Code128 宽度。
语法
int EstimateCode128WidthDots(const std::string& data, int moduleWidth) const;
// 估算 Code128 宽度。
//
// data
// 详见方法说明 / 参数含义见用法示例。
// moduleWidth
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `int`。
估算文本宽度。
语法
int EstimateTextWidthDots(const std::string& text, int charWidthDots = 12) const;
// 估算文本宽度。
//
// text
// 详见方法说明 / 参数含义见用法示例。
// charWidthDots
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 返回 `int`。
进入标签(JPL)模式。
语法
bool EnableLabelMode(const std::shared_ptr<IPrinterConnection>& connection);
// 进入标签(JPL)模式。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
退出标签模式。
语法
bool DisableLabelMode(const std::shared_ptr<IPrinterConnection>& connection);
// 退出标签模式。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签回纸到打印位置。
语法
bool LabelBackPaper(const std::shared_ptr<IPrinterConnection>& connection);
// 标签回纸到打印位置。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
开始标签页布局。
语法
bool LabelPageBegin(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int width, int height, int rotation);
// 开始标签页布局。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// rotation
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
打印标签页(可指定份数)。
语法
bool LabelPagePrint(const std::shared_ptr<IPrinterConnection>& connection, int printNum = 1);
// 打印标签页(可指定份数)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// printNum
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签文本。
语法
bool PrintLabelText(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text, int x, int y);
// 标签文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签文本。
语法
bool PrintLabelText(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text, int x, int y, int fontHeight);
// 标签文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// fontHeight
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签文本。
语法
bool PrintLabelText(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text, int x, int y, int fontHeight, int fontType);
// 标签文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// fontHeight
// 详见方法说明 / 参数含义见用法示例。
// fontType
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签 UTF-8 文本。
语法
bool PrintLabelTextUtf8(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text, int x, int y);
// 标签 UTF-8 文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签 GBK 文本。
语法
bool PrintLabelTextGbk(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text, int x, int y);
// 标签 GBK 文本。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// text
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签一维条码。
语法
bool PrintLabelBarcode(const std::shared_ptr<IPrinterConnection>& connection, int type, const std::string& data, int x, int y, int height, int unitWidth);
// 标签一维条码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// type
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// unitWidth
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签一维条码。
语法
bool PrintLabelBarcode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int type, int height, int unitWidth, int rotate, const std::string& data);
// 标签一维条码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// type
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// unitWidth
// 详见方法说明 / 参数含义见用法示例。
// rotate
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签二维码。
语法
bool PrintLabelQrCode(const std::shared_ptr<IPrinterConnection>& connection, const std::string& data, int x, int y);
// 标签二维码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签二维码。
语法
bool PrintLabelQrCode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int version, int eccLevel, int unitWidth, int rotate, const std::string& data);
// 标签二维码。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// version
// 详见方法说明 / 参数含义见用法示例。
// eccLevel
// 详见方法说明 / 参数含义见用法示例。
// unitWidth
// 详见方法说明 / 参数含义见用法示例。
// rotate
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签 PDF417。
语法
bool PrintLabelPdf417Code(const std::shared_ptr<IPrinterConnection>& connection, const std::string& data, int x, int y);
// 标签 PDF417。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签 PDF417。
语法
bool PrintLabelPdf417Code(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int colNum, int eccLevel, int lwRatio, int unitWidth, int rotate, const std::string& data);
// 标签 PDF417。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// colNum
// 详见方法说明 / 参数含义见用法示例。
// eccLevel
// 详见方法说明 / 参数含义见用法示例。
// lwRatio
// 详见方法说明 / 参数含义见用法示例。
// unitWidth
// 详见方法说明 / 参数含义见用法示例。
// rotate
// 详见方法说明 / 参数含义见用法示例。
// data
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签线段。
语法
bool PrintLabelLine(const std::shared_ptr<IPrinterConnection>& connection, int startX, int startY, int endX, int endY);
// 标签线段。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// startX
// 详见方法说明 / 参数含义见用法示例。
// startY
// 详见方法说明 / 参数含义见用法示例。
// endX
// 详见方法说明 / 参数含义见用法示例。
// endY
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签矩形框。
语法
bool PrintLabelRectangle(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int width, int height);
// 标签矩形框。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签条码可读文字位置。
语法
bool SetLabelBarcodeTextPosition(const std::shared_ptr<IPrinterConnection>& connection, int position);
// 标签条码可读文字位置。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// position
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签图片(文件)。
语法
bool DrawLabelImageFromFile(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& imagePath);
// 标签图片(文件)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// imagePath
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签图片(内存数据)。
语法
bool DrawLabelImageFromData(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const uint8_t* imageData, size_t imageSize);
// 标签图片(内存数据)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// imageData
// 详见方法说明 / 参数含义见用法示例。
// imageSize
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签图片(内存数据)。
语法
bool DrawLabelImageFromData(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::vector<uint8_t>& imageData);
// 标签图片(内存数据)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// imageData
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签图片(ARGB 像素)。
语法
bool DrawLabelImageFromPixels(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const int* pixels, int width, int height);
// 标签图片(ARGB 像素)。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// pixels
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签图片高级绘制。
语法
bool DrawLabelImageAdvanced(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const int* pixels, int width, int height, int showType);
// 标签图片高级绘制。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// x
// 详见方法说明 / 参数含义见用法示例。
// y
// 详见方法说明 / 参数含义见用法示例。
// pixels
// 详见方法说明 / 参数含义见用法示例。
// width
// 详见方法说明 / 参数含义见用法示例。
// height
// 详见方法说明 / 参数含义见用法示例。
// showType
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
标签实心框。
语法
bool DrawLabelBox(const std::shared_ptr<IPrinterConnection>& connection, int left, int top, int right, int bottom, int color);
// 标签实心框。
//
// connection
// 详见方法说明 / 参数含义见用法示例。
// left
// 详见方法说明 / 参数含义见用法示例。
// top
// 详见方法说明 / 参数含义见用法示例。
// right
// 详见方法说明 / 参数含义见用法示例。
// bottom
// 详见方法说明 / 参数含义见用法示例。
// color
// 详见方法说明 / 参数含义见用法示例。
// 返回值
// 指令写入成功返回 true,否则返回 false。
PaperWidth58Mm / PaperWidth80Mm)。FeedPaper(lines) 语义不同,移植时注意。Android_API覆盖对照.md。ConnectParallelPrinter / GetParallelDevices(并口)ListSerialPortsIsBluetoothAvailable / PairBluetoothDevicePrintAndFeedLines(显式行走纸,避免与 FeedPaper 点单位混淆)以下方法在 Android / Windows C# 中存在,当前 C++ SDK 尚未提供封装。
章节保留是为了与四份 Android PDF 手册一一对应;签名为规划中的 C++ 形式。
状态标记:❌ 暂未实现
状态:❌ 暂未实现(Android: connectNetworkPrinterAsync)
异步连接网络打印机(推荐使用,自动在后台线程执行)
规划语法(尚未提供)
void ConnectNetworkPrinterAsync(const std::string& ip, int port, /* callback */);
临时替代: 请使用同步 ConnectNetworkPrinter,并在 UI 中自行放到工作线程。
状态:❌ 暂未实现(Android: clearPrinterBuffer)
清除打印机缓冲区
规划语法(尚未提供)
bool ClearPrinterBuffer(const std::shared_ptr<IPrinterConnection>& connection);
临时替代: 可用 SendCommand 发送 CAN(0x18)等指令临时替代。
状态:❌ 暂未实现(Android: cancelPrint)
取消打印
规划语法(尚未提供)
bool CancelPrint(const std::shared_ptr<IPrinterConnection>& connection);
临时替代: 可用 SendCommand 发送取消类指令临时替代。
状态:❌ 暂未实现(Android: clearBuffer)
清除缓冲区
规划语法(尚未提供)
bool ClearBuffer(const std::shared_ptr<IPrinterConnection>& connection);
临时替代: 同 ClearPrinterBuffer;可用 SendCommand(0x18)。
状态:❌ 暂未实现(Android: cancelPrintCmd)
取消打印
规划语法(尚未提供)
bool CancelPrintCmd(const std::shared_ptr<IPrinterConnection>& connection);
临时替代: 同 CancelPrint。
状态:❌ 暂未实现(Android: printTextInBIG5)
BIG5编码打印文本
规划语法(尚未提供)
bool PrintTextInBIG5(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text);
临时替代: 可先 SetDoubleByteEncoding(..., DoubleByteEncodingBig5),再自行转码后 SendCommand / 原始字节写出。
状态:❌ 暂未实现(Android: printTextInShiftJIS)
Shift_JIS编码打印文本
规划语法(尚未提供)
bool PrintTextInShiftJis(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text);
临时替代: 可先 SetDoubleByteEncoding(..., DoubleByteEncodingShiftJis),再自行转码写出。
状态:❌ 暂未实现(Android: printTextInEUCKR)
EUC-KR编码打印文本
规划语法(尚未提供)
bool PrintTextInEucKr(const std::shared_ptr<IPrinterConnection>& connection, const std::string& text);
临时替代: 可先 SetDoubleByteEncoding(..., DoubleByteEncodingEucKr),再自行转码写出。
状态:❌ 暂未实现(Android: setCharSpacing)
设置字符间距
规划语法(尚未提供)
bool SetCharSpacing(const std::shared_ptr<IPrinterConnection>& connection, int spacing);
临时替代: 可用 SendCommand 发送 ESC/POS 字间距指令。
状态:❌ 暂未实现(Android: reverseFeed)
反向走纸(ESC e)
规划语法(尚未提供)
bool ReverseFeed(const std::shared_ptr<IPrinterConnection>& connection, int lines);
临时替代: 可用 SendCommand 发送 ESC e n。
状态:❌ 暂未实现(Android: horizontalTab)
水平制表(HT)
规划语法(尚未提供)
bool HorizontalTab(const std::shared_ptr<IPrinterConnection>& connection);
临时替代: 可用 SendCommand 发送 HT(0x09)。
状态:❌ 暂未实现(Android: setTabPositions)
设置水平制表位(ESC D)
规划语法(尚未提供)
bool SetTabPositions(const std::shared_ptr<IPrinterConnection>& connection, const std::vector<int>& positions);
临时替代: 可用 SendCommand 发送 ESC D。
状态:❌ 暂未实现(Android: setPrintMode)
设置打印模式
规划语法(尚未提供)
bool SetPrintMode(const std::shared_ptr<IPrinterConnection>& connection, int mode);
临时替代: 可用 SendCommand 发送 ESC ! n,或组合 SetBold/SetTextScale 等。
状态:❌ 暂未实现(Android: setCharacterSet)
设置国际字符集
规划语法(尚未提供)
bool SetCharacterSet(const std::shared_ptr<IPrinterConnection>& connection, int n);
临时替代: 可用 SendCommand 发送字符集选择指令。
状态:❌ 暂未实现(Android: setCharacterCodepage)
设置字符代码页
规划语法(尚未提供)
bool SetCharacterCodepage(const std::shared_ptr<IPrinterConnection>& connection, int n);
临时替代: 可用 SendCommand 发送代码页选择指令。
状态:❌ 暂未实现(Android: setAsciiTextFontType)
设置ASCII文本字体类型
规划语法(尚未提供)
bool SetAsciiTextFontType(const std::shared_ptr<IPrinterConnection>& connection, int fontType);
临时替代: 可用 SendCommand 发送字体选择指令。
状态:❌ 暂未实现(Android: setTextUpsideDown)
设置文本倒置
规划语法(尚未提供)
bool SetTextUpsideDown(const std::shared_ptr<IPrinterConnection>& connection, bool enable);
临时替代: 可用 SendCommand 发送倒置打印指令。
状态:❌ 暂未实现(Android: setTextRotate)
设置文本旋转90度
规划语法(尚未提供)
bool SetTextRotate(const std::shared_ptr<IPrinterConnection>& connection, bool enable);
临时替代: 可用 SendCommand 发送旋转打印指令。
状态:❌ 暂未实现(Android: setTextLineHeight)
设置文本行高
规划语法(尚未提供)
bool SetTextLineHeight(const std::shared_ptr<IPrinterConnection>& connection, int height);
临时替代: 可尝试 SetLineSpacing,或 SendCommand。
状态:❌ 暂未实现(Android: setAsciiTextCharRightSpacing)
设置ASCII字符右间距
规划语法(尚未提供)
bool SetAsciiTextCharRightSpacing(const std::shared_ptr<IPrinterConnection>& connection, int spacing);
临时替代: 可用 SendCommand。
状态:❌ 暂未实现(Android: setKanjiTextCharSpacing)
设置汉字字符左右间距
规划语法(尚未提供)
bool SetKanjiTextCharSpacing(const std::shared_ptr<IPrinterConnection>& connection, int spacing);
临时替代: 可用 SendCommand。
状态:❌ 暂未实现(Android: setPrintPosition)
设置打印起始位置
规划语法(尚未提供)
bool SetPrintPosition(const std::shared_ptr<IPrinterConnection>& connection, int position);
临时替代: 可用 SendCommand 发送绝对打印位置指令。
状态:❌ 暂未实现(Android: setHorizontalAbsolutePrintPosition)
设置水平方向绝对打印位置
规划语法(尚未提供)
bool SetHorizontalAbsolutePrintPosition(const std::shared_ptr<IPrinterConnection>& connection, int n);
临时替代: 可用 SendCommand(ESC $)。
状态:❌ 暂未实现(Android: setHorizontalRelativePrintPosition)
设置水平方向相对打印位置
规划语法(尚未提供)
bool SetHorizontalRelativePrintPosition(const std::shared_ptr<IPrinterConnection>& connection, int n);
临时替代: 可用 SendCommand(ESC \)。
状态:❌ 暂未实现(Android: setVerticalAbsolutePrintPosition)
设置垂直方向绝对打印位置
规划语法(尚未提供)
bool SetVerticalAbsolutePrintPosition(const std::shared_ptr<IPrinterConnection>& connection, int n);
临时替代: 页模式下可用坐标绘制 API;标准模式请 SendCommand。
状态:❌ 暂未实现(Android: setVerticalRelativePrintPosition)
设置垂直方向相对打印位置
规划语法(尚未提供)
bool SetVerticalRelativePrintPosition(const std::shared_ptr<IPrinterConnection>& connection, int n);
临时替代: 页模式下可用坐标绘制 API;标准模式请 SendCommand。
状态:❌ 暂未实现(Android: setBarcodeReadableTextFontType)
设置条码可识别字符的字体类型
规划语法(尚未提供)
bool SetBarcodeReadableTextFontType(const std::shared_ptr<IPrinterConnection>& connection, int fontType);
临时替代: 可用 SendCommand 设置 HRI 字体。
状态:❌ 暂未实现(Android: setBarcodeReadableTextPosition)
设置条码可识别字符的位置
规划语法(尚未提供)
bool SetBarcodeReadableTextPosition(const std::shared_ptr<IPrinterConnection>& connection, int pos);
临时替代: 请使用已实现的 SetBarcodeHriPosition。
状态:❌ 暂未实现(Android: printHorizontalLine)
打印水平线
规划语法(尚未提供)
bool PrintHorizontalLine(const std::shared_ptr<IPrinterConnection>& connection, int start, int end);
临时替代: 可用文本打印 -/─,或 SendCommand。
状态:❌ 暂未实现(Android: fixedHorizontalLine)
固定水平线
规划语法(尚未提供)
bool FixedHorizontalLine(const std::shared_ptr<IPrinterConnection>& connection);
临时替代: 可用文本打印分隔线替代。
状态:❌ 暂未实现(Android: printAndFeedDots)
打印并进点
规划语法(尚未提供)
bool PrintAndFeedDots(const std::shared_ptr<IPrinterConnection>& connection, int dots);
临时替代: C++ 请直接使用 FeedPaper(connection, dots)(ESC J,单位为点)。
状态:❌ 暂未实现(Android: drawRectangleBorderInPageMode)
在页模式下绘制矩形边框
规划语法(尚未提供)
bool DrawRectangleBorderInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int width, int height);
临时替代: 可尝试已实现的 DrawRectangleInPageMode(connection, mode, ...)(边框模式)。
状态:❌ 暂未实现(Android: drawFilledRectangleInPageMode)
在页模式下绘制实心矩形
规划语法(尚未提供)
bool DrawFilledRectangleInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int width, int height);
临时替代: 可尝试已实现的 DrawRectangleInPageMode(connection, mode, ...)(填充模式)。
状态:❌ 暂未实现(Android: printNvBitmap)
标准模式:打印 NV 位图(打印机内存 Logo)
规划语法(尚未提供)
bool PrintNvBitmap(const std::shared_ptr<IPrinterConnection>& connection, int n, int mode);
临时替代: 暂无封装;可用 SendCommand 发送 FS p。
状态:❌ 暂未实现(Android: drawNvBitmapInPageMode)
页模式:在指定坐标打印 NV 位图
规划语法(尚未提供)
bool DrawNvBitmapInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, int n, int mode);
临时替代: 暂无封装;可用 SendCommand。
状态:❌ 暂未实现(Android: drawNvBitmapCenteredInPageMode)
页模式:水平居中打印 NV 位图(需已知位图宽度用于算 x)
规划语法(尚未提供)
bool DrawNvBitmapCenteredInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int pageWidth, int y, int n, int mode);
临时替代: 暂无封装;可用 SendCommand。
状态:❌ 暂未实现(Android: drawTextBIG5InPageMode)
在页模式下绘制文本(BIG5)
规划语法(尚未提供)
bool DrawTextBIG5InPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& text);
临时替代: 可设 BIG5 编码后用 DrawTextInPageMode / 自编码 SendCommand。
状态:❌ 暂未实现(Android: drawTextShiftJISInPageMode)
在页模式下绘制文本(ShiftJIS)
规划语法(尚未提供)
bool DrawTextShiftJisInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& text);
临时替代: 可设 Shift-JIS 编码后自行绘制/发送。
状态:❌ 暂未实现(Android: drawTextEUCKRInPageMode)
在页模式下绘制文本(EUCKR)
规划语法(尚未提供)
bool DrawTextEucKrInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& text);
临时替代: 可设 EUC-KR 编码后自行绘制/发送。
状态:❌ 暂未实现(Android: drawImageFromFileInPageMode)
在页模式下绘制图片(从文件)
规划语法(尚未提供)
bool DrawImageFromFileInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const std::string& filePath, int width, int height);
临时替代: 可先解码图片,再在标准模式用 PrintRasterImageFromFile,或标签模式 DrawLabelImageFromFile。
状态:❌ 暂未实现(Android: drawImageFromDataInPageMode)
在页模式下绘制图片(从数据)
规划语法(尚未提供)
bool DrawImageFromDataInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const uint8_t* data, size_t size, int width, int height);
临时替代: 可先用 PrintRasterImageFromData(标准模式)替代。
状态:❌ 暂未实现(Android: drawImageFromPixelsInPageMode)
在页模式下绘制图片(从像素)
规划语法(尚未提供)
bool DrawImageFromPixelsInPageMode(const std::shared_ptr<IPrinterConnection>& connection, int x, int y, const int* pixels, int width, int height, int targetWidth, int targetHeight);
临时替代: 可先用 PrintRasterImageFromPixels(标准模式)替代。
下列 API 依赖 Android 权限/系统能力,Windows C++ 刻意不提供。
状态:🚫 不移植(Android: onRequestPermissionsResult)
转发 Android 权限回调。
说明: Windows 无运行时权限模型,不移植。
状态:🚫 不移植(Android: getCommunicationManager)
获取内部通信管理器。
说明: Windows C++ 不对外暴露,不移植。
状态:🚫 不移植(Android: hasUsbPermission)
是否已有 USB 权限。
说明: Windows 无 USB 运行时权限 API,不移植。
状态:🚫 不移植(Android: requestUsbPermission)
请求 USB 权限。
说明: Windows 无 USB 运行时权限 API,不移植。
状态:🚫 不移植(Android: addBluetoothListener)
添加蓝牙设备监听器。
说明: 请用 DiscoverBluetoothDevices / GetBluetoothPairedDevices 主动枚举。
状态:🚫 不移植(Android: removeBluetoothListener)
移除蓝牙设备监听器。
说明: C++ 无监听器模型,不移植。