凭条打印(ReceiptPrinter)

# 获取设备状态 getDeviceStatus

● 版本限制

3.0.2 +

● 接口说明
获取凭条打印机当前的状态,是否缺纸等
● Typescript 类型参考
type ResBody = {
    resultCode: number, resultMessage: string, data: {}
}

zwexplorer.ReceiptPrinter.getDeviceStatus(
    data: {}, 
    callback?: (res: ResBody)=>void
): Promise<ResBody>
● 返回数据
参数 类型 必然存在 说明
res.resultCode Number 状态码,0 为正常,其它为异常 [状态码参考]
res.data Object 接口返回的详细数据
res.resultMessage String 接口消息
● 接口示例
zwexplorer.ReceiptPrinter.getDeviceStatus({},(res)=>{
    // 返回数据
})

# 打印bmp图像base64 receiptPrintBmpBase64

● 接口说明
将 1bit 色深的 bmp(位图)图片的base64数据,通过凭条打印机打印

额外说明

通过canvas等方式生成的base64默认为位深度为24(即24bit)的图像,
不能直接用于本接口的打印,
需要通过本插件的imageToBmp接口进行转换后才可以使用

● Typescript 类型参考
type ReqBody = {
    bmpBase64: string,
}

type ResBody = {
    resultCode: number, resultMessage: string, data: {}
}

zwexplorer.ReceiptPrinter.receiptPrintBmpBase64(
    data: ReqBody, 
    callback?: (res: ResBody)=>void
): Promise<ResBody>
● 参数说明
参数 类型 必填 说明
data.bmpBase64 String 需要打印的凭条图片的base64数据
● 返回数据
参数 类型 必然存在 说明
res.resultCode Number 0 正确返回,-1 错误返回
res.data Object 接口返回的详细数据
res.resultMessage String 接口消息
● 接口示例
zwexplorer.ReceiptPrinter.receiptPrintBmpBase64({
  bmpBase64: "Qk3OAwAAAAAAAD4AAAAoAAAATAAAAEwAAAABAAEAAAAAAJADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAD//wAAAAAAAAAAAA////AAAAAAAAAAAH////4AAAAAAAAAAf////+AAAAAAAAAB//////gAAAAAAAAD//////wAAAAAAAAP//////8AAAAAAAAf//////+AAAAAAAB////////gAAAAAAD////////wAAAAAAH////////4AAAAAAP////////8AAAAAAf////////+AAAAAA//////////AAAAAA//////////AAAAAB//////////gAAAAD//////////wAAAAH//////////4AAAAH//////////4AAAAP//////////8AAAAP//////////8AAAAf//////////+AAAAf//////////+AAAA////////////AAAA////////////AAAA////////////AAAB////////////gAAB////////////gAAB////////////gAAB////////////gAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAD////////////wAAB////////////gAAB////////////gAAB////////////gAAB////////////gAAA////////////AAAA////////////AAAA////////////AAAAf//////////+AAAAf//////////+AAAAP//////////8AAAAP//////////8AAAAH//////////4AAAAH//////////4AAAAD//////////wAAAAB//////////gAAAAA//////////AAAAAA//////////AAAAAAf////////+AAAAAAP////////8AAAAAAH////////4AAAAAAD////////wAAAAAAB////////gAAAAAAA////////AAAAAAAAP//////8AAAAAAAAH//////4AAAAAAAAB//////gAAAAAAAAAf////+AAAAAAAAAAH////4AAAAAAAAAAA////AAAAAAAAAAAAD//wAAAAAAAA=",
},(res)=>{
    // 返回数据
})

# 打印bmp图像文件 receiptPrintBmpFile

● 接口说明
将 1bit 色深的 bmp(位图)图片,通过凭条打印机打印
● Typescript 类型参考
type ReqBody = {
    path: string,
}

type ResBody = {
    resultCode: number, resultMessage: string, data: {}
}

zwexplorer.ReceiptPrinter.receiptPrintBmpFile(
    data: ReqBody, 
    callback?: (res: ResBody)=>void
): Promise<ResBody>
● 参数说明
参数 类型 必填 说明
data.path String 需要打印的凭条图片的地址
● 返回数据
参数 类型 必然存在 说明
res.resultCode Number 0 正确返回,-1 错误返回
res.data Object 接口返回的详细数据
res.resultMessage String 接口消息
● 接口示例
zwexplorer.ReceiptPrinter.receiptPrintBmpFile({
  path: "xxx.bmp",
},(res)=>{
    // 返回数据
})

# 文本打印 receiptPrintText

● 接口函数

zwexplorer.ReceiptPrinter.receiptPrintText
● 接口说明
通过文本行数据打印凭条
● Typescript 类型参考
type ReqBody = {
    text: string,
}

type ResBody = {
    resultCode: number, resultMessage: string, data: {}
}

zwexplorer.ReceiptPrinter.receiptPrintText(
    data: ReqBody, 
    callback?: (res: ResBody)=>void
): Promise<ResBody>
● 参数说明
参数 类型 必填 说明
data.text String 文本行数据
● 返回数据
参数 类型 必然存在 说明
res.resultCode Number 状态码,0 为正常,其它为异常 [状态码参考]
res.data Object 接口返回的详细数据
res.resultMessage String 接口消息
● 接口示例
zwexplorer.ReceiptPrinter.receiptPrintText({
  text: "测试文本",
},(res)=>{
    // 返回数据
})

# xml数据打印 receiptPrintXml

● 接口说明
通过 xml 数据打印凭条
● Typescript 类型参考
type ReqBody = {
    xml: string,
}

type ResBody = {
    resultCode: number, resultMessage: string, data: {}
}

zwexplorer.ReceiptPrinter.receiptPrintXml(
    data: ReqBody, 
    callback?: (res: ResBody)=>void
): Promise<ResBody>
● 参数说明
参数 类型 必填 说明
data.xml String xml 文本
● 返回数据
参数 类型 必然存在 说明
res.resultCode Number 状态码,0 为正常,其它为异常 [状态码参考]
res.data Object 接口返回的详细数据
res.resultMessage String 接口消息
● 接口示例
zwexplorer.ReceiptPrinter.receiptPrintXml({
    // 测试xml
    xml:
    '<?xml version="1.0" encoding="UTF-8"?>\n' +
    '<Receipt>\n' +
    '    <!-- 进纸指定行数 -->\n' +
    '    <FeedLines>4</FeedLines>\n' +
    '    <!-- 文本行 -->\n' +
    '    <Text>打印图形测试</Text>\n' +
    '    <!-- 条形码 -->\n' +
    '    <Text>打印条形码测试</Text>\n' +
    '    <Barcode>\n' +
    '        <!-- 条形码字符内容打印位置 -->\n' +
    '        <!-- 0 - 不打印 -->\n' +
    '        <!-- 1 - 条码上方 -->\n' +
    '        <!-- 2 - 条码下方 -->\n' +
    '        <HRI>0</HRI>\n' +
    '        <!-- 条形码类型 -->\n' +
    '        <!-- 0 - EAN13 -->\n' +
    '        <!-- 1 - CODE39 -->\n' +
    '        <!-- 2 - CODE128 -->\n' +
    '        <Type>2</Type>\n' +
    '        <!-- 条形码宽度(一般设置为3) -->\n' +
    '        <Width>10</Width>\n' +
    '        <!-- 条形码高度(一般设置为168) -->\n' +
    '        <Height>4</Height>\n' +
    '        <!-- 条形码字符内容 -->\n' +
    '        <Content>0123456789</Content>\n' +
    '    </Barcode>\n' +
    '    <Text></Text>\n' +
    '    <Text>打印测试完成</Text>\n' +
    '    <!-- 打印设置,根据需求在打印文本、条形码和二维码之前进行设置 -->\n' +
    '    <Setting>\n' +
    '        <!-- 设置字体 -->\n' +
    '        <Font>\n' +
    '            <!-- 0 - 正常字体 -->\n' +
    '            <!-- 1 - 压缩字体 -->\n' +
    '            <Size>0</Size>\n' +
    '            <!-- true  - 粗体 -->\n' +
    '            <!-- false - 正常 -->\n' +
    '            <Bold>false</Bold>\n' +
    '            <!-- true  - 下划线 -->\n' +
    '            <!-- false - 正常 -->\n' +
    '            <UnderLine>false</UnderLine>\n' +
    '            <!-- true  - 倍宽 -->\n' +
    '            <!-- false - 正常 -->\n' +
    '            <DoubleWidth>false</DoubleWidth>\n' +
    '            <!-- true  - 倍高 -->\n' +
    '            <!-- false - 正常 -->\n' +
    '            <DoubleHeight>false</DoubleHeight>\n' +
    '        </Font>\n' +
    '        <!-- 设置字体大小 -->\n' +
    '        <FontSize>\n' +
    '            <!-- 1 - 正常 -->\n' +
    '            <!-- 2~7 - 放大倍数 -->\n' +
    '            <Width>1</Width>\n' +
    '            <!-- 1 - 正常 -->\n' +
    '            <!-- 2~7 - 放大倍数 -->\n' +
    '            <Height>1</Height>\n' +
    '        </FontSize>\n' +
    '        <!-- 设置粗体 -->\n' +
    '        <!-- true  - 粗体 -->\n' +
    '        <!-- false - 正常 -->\n' +
    '        <FontBold>false</FontBold>\n' +
    '        <!-- 设置字符行高度,>=1 -->\n' +
    '        <LineSpace>1</LineSpace>\n' +
    '        <!-- 设置对齐方式 -->\n' +
    '        <!-- 0 - 左对齐 -->\n' +
    '        <!-- 1 - 居中  -->\n' +
    '        <!-- 2 - 右对齐 -->\n' +
    '        <AlignType>1</AlignType>\n' +
    '        <!-- 设置左边距,>=1 -->\n' +
    '        <LeftMargin>10</LeftMargin>\n' +
    '        <!-- 设置右边距,>=1 -->\n' +
    '        <RightMargin>10</RightMargin>\n' +
    '        <!-- 设置反白 -->\n' +
    '        <!-- true  - 反白打印 -->\n' +
    '        <!-- false - 正常打印 -->\n' +
    '        <OppositeColor>false</OppositeColor>\n' +
    '    </Setting>\n' +
    '    <FeedLines>5</FeedLines>\n' +
    '    <!-- 切纸 -->\n' +
    '    <!-- 0 - 全切 -->\n' +
    '    <!-- 1 - 半切 -->\n' +
    '    <CutPaper>1</CutPaper>\n' +
    '</Receipt>';
}, (res)=>{
    // 返回数据
})

# 普通图转位图 imageToBmp

● 接口说明
传入图片 base64 编码转换成位深为 1 的 base64 编码
● Typescript 类型参考
type ReqBody = {
    base64: string,
}

type ResBody = {
    resultCode: number, resultMessage: string, data: {}
}

zwexplorer.ReceiptPrinter.imageToBmp(
    data: ReqBody, 
    callback?: (res: ResBody)=>void
): Promise<ResBody>
● 参数说明
参数 类型 必填 说明
data.base64 String 需要转换的图片的 base64 编码字符串
● 返回数据
参数 类型 必然存在 说明
res.resultCode Number 状态码,0 为正常,其它为异常 [状态码参考]
res.data Object 接口返回的详细数据
res.resultMessage String 接口消息
● 接口示例
zwexplorer.ReceiptPrinter.imageToBmp({
  base64: "data:image/png;base64,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",
},(res)=>{
    // 返回数据
})