📄 escpdump.c
字号:
#define ESCP2 0
#define ESCP 1
#define ESCP9PIN 2
#define UNDEF 0
#define CTRL 1
#define DATA 2
int usage() {
printf("Usage: escpdump [-escp2|-escp|-escp9pin] [Inputfile]\n");
printf(" -escp2: Input File is ESC/P2 (Default)\n");
printf(" -escp: Input File is ESC/P\n");
printf(" -escp9pin: Input File is ESC/P for 9-Pin Printers\n");
return 0;
}
int version() {
printf("Version 0.1\n");
return 0;
}
int escp_analyze(FILE *in, int epson_mode)
{
unsigned int c, c2, c3;
int i, j;
int found;
int ctrl_len;
int mode = UNDEF;
while((c = getc(in)) != EOF) {
if(c < SPACE) {
if(mode == DATA)
printf("<-End Data!\n");
mode = CTRL;
/*
int ctrl_len, data_len, special;
unsigned char byte1;
unsigned char byte2;
unsigned char byte3;
char *command;
unsigned char escp2, escp, escp9pin;
char *chapter;
*/
found = 0;
for(ctrl_len = 1; ctrl_len <= 3 && !found; ctrl_len++) {
for(i = 0; escp[i].ctrl_len; i++) {
if(ctrl_len == escp[i].ctrl_len) {
if(ctrl_len == 1 && escp[i].byte1 == c) {
found = 1;
break;
}
if(ctrl_len == 2 && escp[i].byte1 == c && escp[i].byte2 == c2) {
found = 1;
break;
}
if(ctrl_len == 3 && escp[i].byte1 == c && escp[i].byte2 == c2 && escp[i].byte3 == c3) {
found = 1;
break;
}
}
}
if(found) {
printf("[ ");
if(c == ESC)
printf("ESC ");
else
printf("0x%.2x ", c);
if(ctrl_len == 2)
printf(((c2 < SPACE) ? "0x%.2x " : "%c "), c2);
if(ctrl_len == 3)
printf(((c3 < SPACE) ? "0x%.2x " : "%c "), c3);
if(escp[i].special) {
printf("ERROR: Not yet implemented! ");
} else if(escp[i].data_len) {
printf(": ");
for(j = 0; j < escp[i].data_len; j++) {
printf("0x%.2x ", getc(in));
}
}
printf("]\t");
printf("%s (%s)\n", escp[i].command, escp[i].chapter);
break;
}
if(ctrl_len == 1) {
c2 = getc(in);
}
if(ctrl_len == 2) {
c3 = getc(in);
}
}
} else {
if(mode == CTRL) {
printf("Data ->");
mode = DATA;
}
printf("%c", c);
}
}
if(mode == DATA)
printf("<-End Data!\n");
return 0;
}
int main(int argc, char *argv[]) {
FILE *fpi;
char mode = ESCP2;
int i;
fpi = stdin;
for(i = 1; i < argc; i += 1) {
if(!strcmp(argv[i], "-escp2"))
mode = ESCP2;
else if(!strcmp(argv[i], "-escp"))
mode = ESCP;
else if(!strcmp(argv[i], "-escp9pin"))
mode = ESCP9PIN;
else if(!strcmp(argv[i], "-h"))
exit(usage());
else if(!strcmp(argv[i], "-v"))
exit(version());
else {
if((fpi = fopen(argv[i],"r")) == NULL) {
fprintf(stderr,"cannot open file '%s'\n",argv[i]);
exit(1);
}
}
}
#ifdef WIN32
setmode(fileno(fpi), O_BINARY); /* set to Binary */
#endif
escp_analyze(fpi, mode);
fclose(fpi);
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -