dot printer로 꼭 출력을 해야 하는데 5.0에서는 어떻게 하는지 가르쳐 주세요..
흑흑.. 아무도 가르쳐 주질 않아요...
* Unit : Prt.PAS
* Version : Delphi 3.0
* Date : 1998.06.19
* 설명
Text 형태의 Printer 출력을 한다. 빠른 속도가 요구되는 출력이
나 지로용지 출력 등 페이지 길이가 일정하지 않는 출력을 용이하게
도와준다.
(도스형태의 출력 프로그램을 윈도우즈로 전환할 때 사용)
* Interface
Const
KSSM : Packed Array [1..48] of CodeStr
= (
'KSSM', '46',
'#폼피드', #12,
'#초기화', #27+'@',
'#1/180', #27+'J'+#1,
'#2/180', #27+'J'+#2,
'#5/180', #27+'J'+#5,
'#10/180', #27+'J'+#10,
'#18/180', #27+'J'+#18,
'#완성형', #27+'@'+#28+'&'+#28+'t0',
'#조합형', #27+'@'+#28+'&'+#28+'t1',
'#이탤릭체지정', #27+'4',
'#이탤릭체취소', #27+'5',
'#강조체지정', #27+'E',
'#강조체취소', #27+'F',
'#일반문자', #27+'q'+#0,
'#음각문자', #27+'q'+#1,
'#영상문자', #27+'q'+#2,
'#음각영상', #27+'q'+#3,
'#두배확대', #28+'W1',
'#두배취소', #28+'W0',
'#가로두배지정', #27+'W'+#1,
'#가로두배취소', #27+'W'+#0,
'#세로두배지정', #27+'y'+#1,
'#세로두배취소', #27+'y'+#0
);
KS : Packed Array [1..48] of CodeStr
= (
'KS', '46',
'#폼피드', #12,
'#초기화', #27+'@',
'#1/180', #27+'J'+#1,
'#2/180', #27+'J'+#2,
'#5/180', #27+'J'+#5,
'#10/180', #27+'J'+#10,
'#18/180', #27+'J'+#18,
'#고딕체', #27+'m'+#1,
'#명조체', #27+'m'+#0,
'#이탤릭체지정', #27+'4',
'#이탤릭체취소', #27+'5',
'#강조체지정', #27+'E',
'#강조체취소', #27+'F',
'#역상지정', #27+'r'+#1,
'#역상취소', #27+'r'+#0,
'#음영지정', #27+'z'+#1,
'#음영취소', #27+'z'+#0,
'#1.5배지정', #27+'s'+#1,
'#1.5배취소', #27+'s'+#0,
'#가로두배지정', #27+'W'+#1,
'#가로두배취소', #27+'W'+#0,
'#세로두배지정', #27+'y'+#1,
'#세로두배취소', #27+'y'+#0
);
Var
PrtFile : TextFile;
TimeOut, PrtError : Byte;
PrintPage : Boolean;
PrintFileName : String;
Procedure OpenPrinter;
// 프린터 출력을 시작한다
Procedure PrintStr(Strg:String);
// Strg의 문자열을 프린터로 출력한다
Procedure PrintLnStr(Strg:String);
// Strg의 문자열을 프린터로 출력한 후, 한 줄을 바꾼다
Procedure PrintCode(Code:Array of CodeStr; Strg:String);
// 프린터 제어코드가 포함된 Strg를 코드의 모드로 출력한다
Procedure PrintLnCode(Code:Array of CodeStr; Strg:String);
// 프린터 제어코드가 포함된 Strg를 코드의 모드로 출력한 후, 한 줄을 바꾼다
Procedure PrintFile(code:Array of CodeStr; FileName:String);
// 프린터 제어코드가 포함된 화일을 코드의 모드로 출력한다
Procedure CRLF(Lines:Word);
// Lines의 수 만큼 라인을 바꾼다
Procedure FormFeed;
// 한 장을 넘긴다
Procedure ClosePrinter;
// 프린터 출력을 마친다
* 예제
Procedure TForm1.Button1Click(Sender: TObject);
Begin
OpenPrinter;
PrintStr('I love you!!!');
PrintLnStr('I am a boy...');
PrintCode(KSSM, '#폼피드');
PrinterLnCode(KSSM,'#음각문자 Hello!');
PrintFile(KSSM, 'C:TestTest.dat');
CrLf(3);
FormFeed;
ClosePrinter;
End;
Component를 설치하신후 예제(더 아래쪽 부분)처럼 입력하면
출력 될 것 처럼 보입니다.
만약 그래도 Dot Printer로 출력되지 않는다면
텍스트 파일을 처리 형식으로 해 보세여
var
f : textfile;
:
:
assignfile( f, lpt1 );
rewrite( f );
writeln( f,'지금 이 글이 Priner로 출력 됐습니까 ?' );
writeln( f , #12 ); // 폼 피드
writeln( f,'지금 이 글이 Priner로 출력 됐냐구요 ?' );
writeln( f , #12 ); // 폼 피드
closefile( f );
:
:
또는 Windows API인
CreateFile()
CloseHandle()
ReadFile()
WriteFile()
등을 이용하시거나....
각 함수는 Delphi Help나 MSDN를 참조하거나 한델에서
검색해 보세요(죄송! 설명하기엔 넘 양이 많네요 ^^;)
즐푸하세요