📄 printdriver.c
字号:
// 日期 Date: 2004/03/12
#if mPrintHZ
PrintString(" 日期:");
#else
if (!PrintString(" ")) return(FALSE);
#endif
if (!PrintString("20")) return(FALSE);
if (!PrintHex(RealTime.Year)) return(FALSE);
if (!PrintString("/")) return(FALSE);
if (!PrintHex(RealTime.Month)) return(FALSE);
if (!PrintString("/")) return(FALSE);
if (!PrintHex(RealTime.Day)) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 主叫号
#if mPrintHZ
PrintString("电话号码:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
PrintBCD( &TempBuf[3],(cnPrintMemLen/2)-3 ); // cjf 2004-03-26 打印电话号码
/*
for (i=3; i<(cnPrintMemLen/2); i++)
{
BillData = TempBuf[i] >> 4;
if (BillData == 0x0F) break;
else PrintByte(BillData + '0');
BillData = TempBuf[i] & 0x0F;
if (BillData == 0x0F) break;
else PrintByte(BillData + '0');
}
*/
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 被叫号
#if mPrintHZ
PrintString("电话号码:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
//.....
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
EepromRead((cnPrintMemLen/2),TempBuf,(cnPrintMemAddr + PrintMemID * cnPrintMemLen + cnPrintMemLen/2));
// 起始时间: 03/12 17:36
#if mPrintHZ
PrintString("起始时间:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
if (!PrintHex(TempBuf[0])) return(FALSE);
if (!PrintString("/")) return(FALSE);
if (!PrintHex(TempBuf[1])) return(FALSE);
if (!PrintString(" ")) return(FALSE);
if (!PrintHex(TempBuf[2])) return(FALSE);
if (!PrintString(":")) return(FALSE);
if (!PrintHex(TempBuf[3])) return(FALSE);
// 时长 00:00:30
if (!PrintString(" ")) return(FALSE);
#if mPrintHZ
PrintString("时长:");
#else
PrintString(" ");
#endif
// 话价
if (!PrintString(" ")) return(FALSE);
//.....
// 合计
PrintByte(0x0C); // 换页
return(TRUE);
}
//***************************************************************
// BOOL PrintAddupData(BYTE PrintMemID)
//
// Func: 打印打印缓存中的合计数据
// 打印缓存中的话单数据格式:
// Note: 类别 1B
// 路数 1B
// 次数 1B
// 金额 3B
// cjf 2004-03-23
//***************************************************************
BOOL PrintAddupData(BYTE PrintMemID)
{
BYTE i;
DWORD dwPrintBillTemp;
// cjf 2004-03-2
InitPrinter();
if (!PrintByte(0x1B)) return(FALSE);
if (!PrintByte(0x43)) return(FALSE);
if (!PrintByte(0x16)) return(FALSE); // 设置一页为22行
#if mPrintHZ
PrintString("RECEIPT FOR CALL CHARGES"); // 每组话单必须以英文打头,否则会出现乱码
//PrintString("\r\n亿联网络技术有限公司"); //
PrintString("\r\n公用电话话费收据");
PrintString("\r\n话单打印:");
#else
PrintString("\r\n");
PrintString("\r\n");
#endif
for (i=7; i>0; i--) // cjf 2004-03-2
{
if (!PrintString("\r\n")) return(FALSE);
}
EepromRead((cnPrintMemLen/2),TempBuf,(cnPrintMemAddr + PrintMemID * cnPrintMemLen));
// 流水号 NO: 2-001
#if mPrintHZ
PrintString("编号:");
#endif
if (!PrintByte(TempBuf[1] + '0')) return(FALSE); // 打印路数
if (!PrintString("-")) return(FALSE);
if (!PrintByte('0')) return(FALSE);
if (!PrintByte('0')) return(FALSE);
if (!PrintByte('0')) return(FALSE); // 打印组数
// 日期 Date: 2004/03/12
#if mPrintHZ
PrintString(" 日期:");
#else
if (!PrintString(" ")) return(FALSE);
#endif
if (!PrintString("20")) return(FALSE);
if (!PrintHex(RealTime.Year)) return(FALSE);
if (!PrintString("/")) return(FALSE);
if (!PrintHex(RealTime.Month)) return(FALSE);
if (!PrintString("/")) return(FALSE);
if (!PrintHex(RealTime.Day)) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 主叫号
#if mPrintHZ
PrintString("电话号码:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 被叫号
#if mPrintHZ
PrintString("电话号码:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
//.....
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 起始时间: 03/12 17:36
#if mPrintHZ
PrintString("起始时间:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
// 时长 00:00:30
#if mPrintHZ
PrintString(" 时长:");
#else
PrintString(" ");
#endif
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 次数
#if mPrintHZ
if (!PrintString("通话次数:")) return(FALSE);
#else
if (!PrintString(" ")) return(FALSE);
#endif
//.....
//
if( i=TempBuf[2]/100 )
{
if (!PrintHex(i)) return(FALSE);
}
else
{
if (!PrintString(" ")) return(FALSE);
}
//
if( i=TempBuf[2]%100 )
{
if (!PrintHex(i)) return(FALSE);
}
else
{
if (!PrintString(" ")) return(FALSE);
}
//
// 合计
if (!PrintString(" RMB")) return(FALSE);
dwPrintBillTemp = (TempBuf[3] << 16) | (TempBuf[4] << 8) | TempBuf[5];
i = dwPrintBillTemp/10000;
if (!PrintHex(i)) return(FALSE);
i = dwPrintBillTemp%10000/100;
if (!PrintHex(i)) return(FALSE);
if (!PrintString(".")) return(FALSE);
i = dwPrintBillTemp%100;
if (!PrintHex(i)) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
PrintByte(0x0C); // 换页
return(TRUE);
}
//***************************************************************
// BOOL PrintClassData(BYTE PrintMemID)
//
// Func: 打印打印缓存中的分类统计数据
// Note: 打印缓存中的话单数据格式:
// 类别 1B
// 路数 1B TempBuf[1]
// 统计日期(2B) TempBuf[2~3]
// 话单个数(2B) TempBuf[4~5]
// 统计的通话总时长(3B) TempBuf[6~8]
// 统计的通话总费用(4B) TempBuf[9~12]
// cjf 2004-03-23
//***************************************************************
BOOL PrintClassData(BYTE PrintMemID)
{
BYTE i;
DWORD dwPrintBillTemp;
// cjf 2004-03-2
InitPrinter();
if (!PrintByte(0x1B)) return(FALSE);
if (!PrintByte(0x43)) return(FALSE);
if (!PrintByte(0x16)) return(FALSE); // 设置一页为22行
#if mPrintHZ
PrintString("RECEIPT FOR CALL CHARGES"); // 每组话单必须以英文打头,否则会出现乱码
//PrintString("\r\n亿联网络技术有限公司"); //
PrintString("\r\n公用电话话费收据");
PrintString("\r\n话单打印:");
#else
PrintString("\r\n");
PrintString("\r\n");
#endif
for (i=5; i>0; i--) // cjf 2004-03-2
{
if (!PrintString("\r\n")) return(FALSE);
}
EepromRead(13,TempBuf,(cnPrintMemAddr + PrintMemID * cnPrintMemLen));
// 流水号 NO: 2-001
#if mPrintHZ
switch( TempBuf[0] )
{
case cnPrintClassDayTotal: // 打印日统计中的总计
if (!PrintString("日总统计 ")) return(FALSE);
break;
case cnPrintClassDayLocal: // 打印日统计中的本地
if (!PrintString("日本地统计")) return(FALSE);
break;
case cnPrintClassDayHome: // 打印日统计中的国内
if (!PrintString("日国内统计")) return(FALSE);
break;
case cnPrintClassDayInter: // 打印日统计中的国际
if (!PrintString("日国际统计")) return(FALSE);
break;
case cnPrintClassDayElse: // 打印日统计中的其他
if (!PrintString("日其他统计")) return(FALSE);
break;
case cnPrintClassMonTotal: // 打印月统计中的总计
if (!PrintString("月总统计 ")) return(FALSE);
break;
case cnPrintClassMonLocal: // 打印月统计中的本地
if (!PrintString("月本地统计")) return(FALSE);
break;
case cnPrintClassMonHome: // 打印月统计中的国内
if (!PrintString("月国内统计")) return(FALSE);
break;
case cnPrintClassMonInter: // 打印月统计中的国际
if (!PrintString("月国际统计")) return(FALSE);
break;
case cnPrintClassMonElse: // 打印月统计中的其他
if (!PrintString("月其他统计")) return(FALSE);
break;
default:
break;
}
#else
//if (!PrintString("\r\n")) return(FALSE);
#endif
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
#if mPrintHZ
PrintString("编号:");
#endif
if (!PrintByte(TempBuf[1] + '0')) return(FALSE); // 打印路数
if (!PrintString("-")) return(FALSE);
if (!PrintByte('0')) return(FALSE);
if (!PrintHex(TempBuf[0])) return(FALSE); // 打印组数
// 日期 Date: 2004/03/12
#if mPrintHZ
PrintString(" 日期:");
#else
if (!PrintString(" ")) return(FALSE);
#endif
if (!PrintString("20")) return(FALSE);
if (!PrintHex(RealTime.Year)) return(FALSE);
if (!PrintString("/")) return(FALSE);
if (!PrintHex(RealTime.Month)) return(FALSE);
if (!PrintString("/")) return(FALSE);
if (!PrintHex(RealTime.Day)) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 主叫号
#if mPrintHZ
PrintString("电话号码:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
//.....
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 统计日期
#if mPrintHZ
if(TempBuf[0] > cnPrintClassDayElse)
PrintString("统计月份:");
else
PrintString("统计日期:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
if (!PrintHex(TempBuf[2])) return(FALSE);
if (!PrintByte('/')) return(FALSE);
if (!PrintHex(TempBuf[3])) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
//EepromRead((cnPrintMemLen/2),TempBuf,(cnPrintMemAddr + PrintMemID * cnPrintMemLen + cnPrintMemLen/2));
// 起始时间: 03/12 17:36
#if mPrintHZ
PrintString("起始时间:");
#else
if (!PrintString(" ")) return(FALSE); // cjf 2004-03-23
#endif
// 时长 00:00:30
if (!PrintString(" ")) return(FALSE);
#if mPrintHZ
PrintString("总时长:");
#else
PrintString(" ");
#endif
dwPrintBillTemp =0;
dwPrintBillTemp = (TempBuf[6] << 16) | (TempBuf[7] << 8) | TempBuf[8];
i = dwPrintBillTemp/360000;
if (!PrintHex(i)) return(FALSE);
dwPrintBillTemp %= 360000;
i = dwPrintBillTemp/3600;
if (!PrintHex(i)) return(FALSE);
if (!PrintString(":")) return(FALSE);
i = dwPrintBillTemp%3600/60;
if (!PrintHex(i)) return(FALSE);
if (!PrintString(":")) return(FALSE);
i = dwPrintBillTemp%60;
if (!PrintHex(i)) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
if (!PrintString("\r\n")) return(FALSE);
// 次数
#if mPrintHZ
if (!PrintString("通话次数:")) return(FALSE);
#else
if (!PrintString(" ")) return(FALSE);
#endif
//.....
dwPrintBillTemp = 0;
dwPrintBillTemp = (TempBuf[4] << 8) | TempBuf[5];
if( i=dwPrintBillTemp/10000)
{
if (!PrintHex(i)) return(FALSE);
}
else
{
if (!PrintString(" ")) return(FALSE);
}
if( i=dwPrintBillTemp/100)
{
if (!PrintHex(i)) return(FALSE);
}
else
{
if (!PrintString(" ")) return(FALSE);
}
i=dwPrintBillTemp%100;
if (!PrintHex(i)) return(FALSE);
// 合计
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -