⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printdriver.c

📁 51单片机驱动打印机的C程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	// 日期		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 + -