iOS Swift-Epson POS打印机-ePOS SDK-addTextSize-如何将文本大小更改回原始大小?

问题描述 投票:0回答:1

我正在使用iPad上的swift通过以太网连接打印到Epson打印机上构建POS。

我正在使用Epson文档和示例项目来使打印机启动并正常运行。

现在是问题:

我需要更改文本大小(更大),然后恢复为原始文本大小-我最初可以更改textSize没问题->但是,当我恢复为原始大小时,它确实会变小,但不如原始大小小。见下文:

Text-Size

根据Epson docs-addTextSize()-是我正在寻找的方法,它接受1-8之间的Int值来缩放高度和宽度(它声明默认值为1)

https://reference.epson-biz.com/modules/ref_epos_sdk_ios_en/index.php?vid=ref_epos_sdk_ios_en_epos2printerclass_addtextsize#BHIHFBFB

这是我的代码:

func sendPrint(printer: Epos2Printer) -> Bool {
    var result = EPOS2_SUCCESS.rawValue
    let textData: NSMutableString = NSMutableString()

    result = printer.addFeedLine(2)
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addFeedLine")
        return false
    }

    textData.append("Food item       $12.00\n")
    textData.append("Food item       $12.00\n")
    textData.append("Food item       $12.00\n")
    textData.append("Food item       $12.00\n")

    // SEND AT ORIGINAL TEXT SIZE (Should be 1,1)
    result = printer.addText(textData as String)
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addText")
        return false
    }
    textData.setString("")

    // CHANGE TEXT SIZE BIGGER WIDTH (2,1)
    result = printer.addTextSize(2, height:1)
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addTextSize")
        return false
    }

    textData.append("ADDRESS               \n")
    textData.append("CITY                  \n")
    textData.append("STATE                 \n")
    textData.append("ZIPCODE               \n")

    result = printer.addText(textData as String)
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addText")
        return false
    }
    textData.setString("")

    // CHANGE TEXT SIZE BACK TO DEFAULT (1,1)
    result = printer.addTextSize(1, height: 1) 
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addTextSize")
        return false
    }

    textData.append("Food item       $12.00\n")
    textData.append("Food item       $12.00\n")
    textData.append("Food item       $12.00\n")
    textData.append("Food item       $12.00\n")

    result = printer.addText(textData as String)
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addText")
        return false
    }
    textData.setString("")

    result = printer.addFeedLine(2)
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addFeedLine")
        return false
    }

    result = printer.addCut(EPOS2_CUT_FEED.rawValue)
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"addCut")
        return false
    }

    printer.beginTransaction()
    result = printer.sendData(Int(EPOS2_PARAM_DEFAULT))
    if result != EPOS2_SUCCESS.rawValue {
        printer.clearCommandBuffer()
        MessageView.showErrorEpos(result, method:"sendData")
        printer.disconnect()
        return false
    }
    printer.endTransaction()
    return true
}

现在,我知道一个可行的选择是从一开始就设置textSize-但我希望将顶部和底部的尺寸保持为最小。

[我也尝试将EPOS2_PARAM_DEFAULT指定为产生相同结果的参数-我尝试将0作为输入,这会导致textSize更改失败-我尝试使用像1.5或.5这样的double值,但这没有编译

有什么想法吗?

感谢您的帮助!

ios swift epson pos epos
1个回答
0
投票

经过无数次尝试,我发现了这一点-我会继续保留这个职位,因为它可能会在将来帮助某人,因为iPad在POS解决方案中似乎越来越受欢迎。

因此,当您更改文本大小时,字体也会被更改-我认为这可能是Epos SDK中的错误,因为它们指出默认字体为EPOS2_FONT_A,但初始字体似乎以[C0开始]->然后更改文字大小时,它将字体恢复为EPOS2_FONT_B

如果要保留较小的字体,只需在准备打印数据开始时设置EPOS2_FONT_A (default)

© www.soinside.com 2019 - 2024. All rights reserved.