LittleCalabash 2024-01-19 15:46 采纳率: 0%
浏览 13
已结题

vb.net环境下postek打印机打印中文乱码

之前使用excel内的vba代码可以打印中文,后来因为需求变了,不能依赖excel,所以直接由程序控制打印,使用的是vb.net(VS2010)写的,代码如下图,打印中文都是乱码,但是英文和数字正常,问了厂家技术,说要加一个语句转换字符集,然后折腾了3天还是不行,截图如下,求解决!

img

img

img

2024-01-22上午更新:
根据大家的的回答,我全部试了,最后发现问题所在应该在下列代码上:

Private Declare Function PTK_SetCharSets Lib "CDFPSK.DLL" (ByVal BitValue As Integer, ByVal CharSets As Byte, ByVal CountryCode As String) As Integer
PTK_SetCharSets(8, U, "001")

其中的 ByVal CharSets As Byte 到底是定义Char 还是 Byte ,反正哪个都打印不了中文,
根据厂家说明书里转换字符集的语句 PTK_SetCharSets(8, U, "001"),我把U,001,U,850,G,001,G,850都试了,都是乱码,
最后根据大家的建议使用语句转换字符串为GB或UTF8,都无法正常打印中文,求解决远程也可以。需要远程的私信我!

  • 写回答

14条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-19 15:47
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,问题可能出在字符集的设置上。根据截图内容,你在代码中调用了PTK SetCharSets函数来设置字符集为UTF-8,但是打印机仍然无法正确打印中文字符。为了解决这个问题,我建议你尝试以下几个步骤:

    1. 确定打印机是否支持UTF-8字符集
    打开打印机的手册或者联系打印机厂商,确认一下你的打印机是否支持UTF-8字符集。如果不支持,那么无论你在代码中如何设置字符集都无法打印出中文。

    2. 尝试使用其他字符集
    如果你的打印机不支持UTF-8字符集,那么你可以尝试使用其他支持的字符集,如GBK。根据图2的截图内容,你可以调用PTK SetCharSets函数,并将CharSets参数设置为10(对应的是GBK字符集),然后再进行打印。

    代码示例(完整示例请参考下方附件):

    PTK_SetCharSets(8, 10, "001")
    

    3. 确认文本编码
    除了设置字符集之外,还需要确保你输入的文本是以正确的编码传递给打印机。例如,如果你使用的是UTF-8编码,那么你需要将文本转换为UTF-8编码后再传递给打印机。

    例如,可以使用Encoding.UTF8.GetBytes函数将文本转换为UTF-8编码的字节数组,然后再将字节数组传递给打印机的相关函数。

    代码示例:

    Dim LabelNameBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(LabelName)
    PTK_DrawTextEx(80, 168, 80, 0, "宋体", 1, 400, False, False, False, LabelNameBytes)
    

    上述操作应该可以让打印机正确打印中文字符。如果仍然无法解决问题,请提供更详细的错误描述或者相关的日志信息,以便我更好地帮助你解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月22日
  • 赞助了问题酬金20元 1月22日
  • 修改了问题 1月22日
  • 创建了问题 1月19日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值