- 49
- 0
#include"stdafx.h"#include"PrinterCommand.h"#include"apn_basic_type.h"#include "TicketTemplate.h"#include <time.h>#include<WinSock2.h>#include<string.h>#pragma comment(lib,"ws2_32.lib")#include<iostream>#include <Ws2tcpip.h>#include"socket.h"#include<stdio.h>#include<xkeycheck.h>#define ESC (27)//换码#define FS (28)//文本分隔符#define GS (29)//组分隔符#define DLE (16)//数据连接换码#define EOT (4)//传输结束#define ENQ (5)//询问字符#define SP (32)//空格#define HT (9)//横向列表#define LF (10)//打印并换行(水平定位)#define CR (13)//归位键#define FF (12)//走纸控制(打印并回到标准模式(在页模式下) )#define CAN (24)//作废(页模式下取消打印数据 )//---------------------- - 打印机初始化---------------------------- -/*打印机初始化*/Type_Char init_printer[3] = { ESC,64 , 0};Type_Char nextLine[2] = { LF,0 };//------------------------下划线----------------------------- /** * 绘制下划线(1点宽) * @return */Type_Char underlineWithOneDotWidthOn[4] = { ESC,45,1, 0};/** * 绘制下划线(2点宽) * @return */Type_Char underlineWithTwoDotWidthOn[4] = { ESC,45,2,0 };/** * 取消绘制下划线 * @return */Type_Char underlineOff[3] = { ESC,45,0 };//------------------------加粗----------------------------- /** * 选择加粗模式 * @return */Type_Char boldOn[4] = { ESC,69,0xF ,0 };/** * 取消加粗模式 * @return */Type_Char boldOff[3] = { ESC,69,0 };//------------------------对齐-----------------------------/** * 居中对齐 * @return */Type_Char alignCenter[4] = { ESC,97,1,0};//------------------------字体变小----------------------------- /** * 字体取消倍宽倍高 * @param num * @return */Type_Char fontSizeSetSmall[4] = { ESC,33,0,0};//------------------------字体变大----------------------------- /** * 字体变大为标准的n倍 * @param num * @return */Type_Char fontSizeSetBig[4]{ 29 ,33 ,34,0};//************************切纸***************************** /** * 进纸并全部切割 * @return */Type_Char feedPaperCutAll[5] = { 29,86,65,8,0};/** * 进纸并切割(左边留一点不切) * @return */Type_Char feedPaperCutPartial[4] = { 29,86,66,0};/****** 欢迎光临 ******/Type_Char title[] = "欢迎光临";/****** 获取时间 ******/Type_Char buf[128];void getTime(){ time_t t; memset(buf, 0, sizeof(buf)); struct tm *tmp; t = time(NULL); tmp = localtime(&t); strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tmp); //设置日期格式}/****** 储物柜号: ******/Type_Char chuWuGuiShowCodeTitle[] = "储物柜号:";/****** 602 ******/Type_Char chuWuGuiShowCodeNo[] = "602";/****** 条形码 ******///设置条形码宽度Type_Char setBarCodeWidth[4] = { GS ,119,0 ,0};Type_Char BarCode[20] = { 0 };void printBarCode(){ Type_Char random[] = { 0 };//从条形码数据获取 srand((unsigned int)time(NULL)); const char ret = rand() %90+10;//生成10-99的随机数 random[0] =ret; Type_Char aBarCode[20] = { GS,107,73,16,123,65}; Type_Char cardIDstr[] = "003268798";//从条形码数据获取cardID strcat(BarCode, aBarCode); strcat(BarCode, "AA"); strcat(BarCode, cardIDstr); strcat(BarCode,random); strcat(BarCode, random);}// /******* 提示 ******/Type_Char tips[] = "注意:本小票开柜一次后失效。";// /******* 空格 ******/Type_Char hspace[] = " ";Type_Char*str = NULL;int len = 0;/*************小票模板定义***********/void byteMerger() { getTime(); printBarCode(); //获取系统时间并把时间存到数组中 Type_Char *cmdBytes[] = { setBarCodeWidth, alignCenter,boldOn,fontSizeSetBig,title, fontSizeSetSmall,boldOff,nextLine, alignCenter,buf,hspace,chuWuGuiShowCodeTitle,chuWuGuiShowCodeNo,nextLine, alignCenter,BarCode,nextLine, nextLine, alignCenter,fontSizeSetSmall,tips,nextLine, feedPaperCutAll }; for (int i = 0; i < sizeof(cmdBytes) / sizeof(cmdBytes[0]); i++) { len += strlen(cmdBytes[i]); } str = (char*)malloc(len); memset(str, 0, len); for (int i = 0; i < sizeof(cmdBytes) / sizeof(cmdBytes[0]); i++) { strcat(str, cmdBytes[i]); }}
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
梧桐听雨 普通会员 1楼
在VS中写C语言打印条形码小票,出现烫字乱码的情况,可能有以下几个原因:
-
字符集问题:VS可能没有安装对应的字符集,导致在输出时使用了不同的字符集。可以尝试安装并启用合适的字符集。
-
字符编码问题:VS可能没有正确地处理输入的字符串。可以尝试使用UTF-8等字符编码。
-
打印格式问题:VS可能没有正确地设置打印格式。可以尝试设置适当的字体、字号、颜色等。
-
编译问题:VS可能没有正确地编译和链接代码。可以尝试重新编译代码或者添加相应的库。
-
系统环境问题:VS可能没有正确的安装了某些必要的系统环境,如JPEG或PNG等格式的支持。
-
硬件问题:VS可能没有安装必要的硬件驱动,导致打印出现问题。
为了更好地解决问题,建议您先尝试上述解决方法,如果问题依然存在,可能需要重新考虑是否需要升级VS或更换硬件。
-
-
天蚕土豆 普通会员 2楼
在VS中写C语言打印条形码小票,出现烫字乱码的情况,可能有以下几个原因:
-
字符集问题:VS可能没有安装对应的字符集,导致在输出时使用了不同的字符集。可以尝试安装并启用合适的字符集。
-
字符编码问题:VS可能没有正确地处理输入的字符串。可以尝试使用UTF-8等字符编码。
-
打印格式问题:VS可能没有正确地设置打印格式。可以尝试设置适当的字体、字号、颜色等。
-
编译问题:VS可能没有正确地编译和链接代码。可以尝试重新编译代码或者添加相应的库。
-
系统环境问题:VS可能没有正确的安装了某些必要的系统环境,如JPEG或PNG等格式的支持。
-
硬件问题:VS可能没有安装必要的硬件驱动,导致打印出现问题。
为了更好地解决问题,建议您先尝试上述解决方法,如果问题依然存在,可能需要重新考虑是否需要升级VS或更换硬件。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部


