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

📄 prt.cpp

📁 vt100终端仿真程序
💻 CPP
字号:

#include "stdafx.h"
#include "prt.h"
//#include <winspool.h>
#include "stdio.h"

FILE * hPrn;
int PrnType;

extern int iDirect;

//打印机型号	
//CSI [ / Pn t参数Pn=0,1...	选择打印机型号,
//凡是以点阵或图象方式打印的都需选择确定的某种打印机。
int PrintType()
{
	return 0;
}

//有无换页符	
//CSI ?18h	打印完毕后终端附加换页符给打印机
//CSI ?18l	打印完毕后终端不作附加处理
int PrintLFChar()
{
	return 0;
}

//图象放大系数	
//CSI /Pn X参数Pn=1,2,3,4	屏幕图象打印时,选择放大打印的倍数.
int PrintImageMult()
{
	return 0;
}

//打印区域	
//CSI ?19h	打印整屏
int PrintAll()
{
	return 0;
}

//CSI ?19l	打印滚动区域
int PrintPart()
{
	return 0;
}

//代码打印	   
//CSI / 22h	全部内容使用打印机字库打印文本
int PrintCode()
{
	return 0;
}

//点阵打印	
//CSI/ 22lCSI / 21l 	全部内容使用终端字库打印文本
int PrintLattice()
{
	return 0;
}

//快速打印	
//CSI / 22l 	西文使用打印机字库,
//CSI / 21h     中文使用终端字库打印文本
int PrintQuick()
{
	return 0;
}

//字体放大	   
//CSI / 0W	点阵字体正常
int PrintFontNormal()
{
	return 0;
}

//CSI / 1W	点阵字体横放
int PrintFontW()
{
	return 0;
}

//CSI / 2W	点阵字体纵放
int PrintFontH()
{
	return 0;
}

//CSI / 3W	点阵字体纵横放
int PrintFontWH()
{
	return 0;
}

//横向点阵基数	   
//CSI / 23l	横向点阵16
int PrintWBase16()
{
	return 0;
}

//CSI / 23h	横向点阵24
int PrintWBase24()
{
	return 0;
}

//行间距	
//CSI / 0 U	字符行间距0点
int PrintRowD0()
{
	return 0;
}

//CSI / 1 U	字符行间距2点
int PrintRowD1()
{
	return 0;
}

//CSI / 2 U	字符行间距4点
int PrintRowD2()
{
	return 0;
}

//CSI / 3 U	字符行间距6点
int PrintRowD3()
{
	return 0;
}

//列间距	
//CSI / 0 V	字符列间距0点
int PrintColD0()
{
	return 0;
}

//CSI / 1 V	字符列间距2点
int PrintColD1()
{
	return 0;
}

//CSI / 2 V	字符列间距4点
int PrintColD2()
{
	return 0;
}

//CSI / 3 V	字符列间距6点
int PrintColD3()
{
	return 0;
}



//打印方式****************************************

//屏幕打印	
//ESC[ i	
//把当前屏幕内容按文本或图象方式传送到打印机,结束后自动退出。
int PrintScreen()
{
	return 0;
}



//打印光标行
//ESC[ 1i	
//把当前光标所在行的内容按文本方式传送到打印机,结束后自动退出。
int PrintCursorRow()
{
	return 0;
}

//拷贝打印	
//把主机按显示格式(不含打印机命令)逐行传送的内容一边显示一边打印,在点阵打印方式下,可用控制显示格式的命令来控制打印格式。
//ESC[ ? 5 i  开
int PrintCopyOpen()
{
	return 0;
}

//ESC[ ? 4 i  关			
int PrintCopyClose()
{
	return 0;
}


//直接透明打印	
//除了退出命令外,把主机传送的内容全透明地送到打印机,即主机直接控制打印机,传送的内容不影响屏幕。
//ESC[5 i
int PrintDritTransOpen1()
{
/*	PRINTER_INFO_2  pInfo[20];
	DWORD dwBytes,dwPrn;
	BOOL bRet;

	dwPrn=0;
	bRet=EnumPrinters(PRINTER_ENUM_DEFAULT,NULL,2,(LPBYTE)&pInfo,sizeof(pInfo),&dwBytes,&dwPrn);
	if (bRet==0 || dwPrn==0)
		return 1;
	else
		bRet=OpenPrinter(pInfo[0].pPrinterName, &hPrn,NULL);
*/
	iDirect=2;
	PrnType=1;
	hPrn=fopen("LPT1:","w");
	return 0;
}

int PrintDritTransOpen2()
{
/*	PRINTER_INFO_2  pInfo[20];
	DWORD dwBytes,dwPrn;
	BOOL bRet;

	dwPrn=0;
	bRet=EnumPrinters(PRINTER_ENUM_DEFAULT,NULL,2,(LPBYTE)&pInfo,sizeof(pInfo),&dwBytes,&dwPrn);
	if (bRet==0 || dwPrn==0)
		return 1;
	else
		bRet=OpenPrinter(pInfo[0].pPrinterName, &hPrn,NULL);
*/
	iDirect=2;
	PrnType=2;
	hPrn=fopen("LPT1:","w");
	return 0;
}

int PrintDritTransOpen3()
{
/*	PRINTER_INFO_2  pInfo[20];
	DWORD dwBytes,dwPrn;
	BOOL bRet;

	dwPrn=0;
	bRet=EnumPrinters(PRINTER_ENUM_DEFAULT,NULL,2,(LPBYTE)&pInfo,sizeof(pInfo),&dwBytes,&dwPrn);
	if (bRet==0 || dwPrn==0)
		return 1;
	else
		bRet=OpenPrinter(pInfo[0].pPrinterName, &hPrn,NULL);
*/
	iDirect=2;
	PrnType=3;
	hPrn=fopen("LPT1:","w");
	return 0;
}

//ESC[4 i	
int PrintDritTransClose()
{
	return 0;
}

//间接透明打印	
//不显示的拷贝打印,即用控制显示的方式来控制打印。
//ESC[7 i
int PrintInDritTransOpen()
{
	return 0;
}

//ESC[6 i		
int PrintInDritTransClose()
{
	return 0;
}

//打印数据
int PrintData(char * szData)
{
/*	DOC_INFO_1  di1;
	DWORD dwBytes;
	
	di1.pDatatype=NULL;
	di1.pDocName="aaa";
	di1.pOutputFile=NULL;

	StartDocPrinter(hPrn,1,(LPBYTE)&di1);
	StartPagePrinter(hPrn);
	WritePrinter(hPrn,LPVOID(szData),strlen(szData),&dwBytes);
	EndPagePrinter(hPrn);
	EndDocPrinter(hPrn);
*/	
	fprintf(hPrn,szData);
	return 0;
}

//关闭打印机
int ClosePrn()
{
//	ClosePrinter(hPrn);
	fclose(hPrn);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -