0

我正在尝试向打印机发送以下命令以使用代码页 500 设置打印机,但这对我不起作用,我需要1B 74 02 在 raw_data 的初始化中发送它。通过这样做,我丢失了所有编码。

在此处输入图像描述

std::string fmtData = text;
LPBYTE buffer[6];

memset(buffer, 0x00, sizeof(buffer));
buffer[0] = (LPBYTE)0x1B;
buffer[1] = (LPBYTE)0x74;
buffer[2] = (LPBYTE)0x02;

WFSPTRRAWDATA print_data = {
        WFS_PTR_INPUTDATA,
        fmtData.size(),
        (LPBYTE)buffer
    };

wfs_execute(WFS_CMD_PTR_RAW_DATA, &print_data, TIMEOUT_WFS_CMD_PTR_RAW_DATA, wfsResult);

4

1 回答 1

0

我发现我的麻烦,我试图同时做每一个,例如发送文本和代码页。但我可以分开做,这种方式对我有用。

第 1 步:将代码页发送到打印机

const char *command = "\x1B\x74\x02";

WFSPTRRAWDATA print_data = {
    WFS_PTR_NOINPUTDATA,
    sizeof(command),
    (LPBYTE)command
};

sep::xfs::unique_wfsresult_ptr wfsResult;
if (result = wfs_execute(WFS_CMD_PTR_RAW_DATA, &print_data, TIMEOUT_WFS_CMD_PTR_RAW_DATA, wfsResult)){
    return result;
}

第 2 步:发送文本

std::string fmtData = text;
replace_special_chars(fmtData);

WFSPTRRAWDATA print_data = {
    WFS_PTR_NOINPUTDATA,
    fmtData.size(),
    (LPBYTE)fmtData.c_str()
};

unique_wfsresult_ptr wfsResult;
return wfs_execute(WFS_CMD_PTR_RAW_DATA, &print_data, TIMEOUT_WFS_CMD_PTR_RAW_DATA, wfsResult);
于 2021-09-08T13:19:29.530 回答