[Delphi] 웹브라우져 컨트롤을 이용하여 출력하기
웹브라우져 컨트롤을 이용하여 출력하기
델파이로 프로그램 작업을 하다가
출력물이 필요해서 웹브라우져 컨트롤을 이용한 출력 프로그램을 만들었습니다.
델파이 스타터 버전에는 퀵리포트나 패스트 리포트가 없어서
HTML 을 디자인 하고 웹브라우져 컨트롤로 표시한후 출력하면 되겠다는 생각에
만들어 보게 되었습니다.
출력 데이터 생성
---- 소스코드
var
htmltext, errmsg: String;
Fp: TextFile;
IOError : integer;
begin
htmltext := '<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">' + #10#13;
htmltext := htmltext + '<table border="1">';
htmltext := htmltext + '<tr><td>성명</td><td>' + Edit1.Text + '</td></tr>';
htmltext := htmltext + '<tr><td>생년월일</td><td>' + Edit2.Text + '</td></tr>';
htmltext := htmltext + '<tr><td>연락처</td><td>' + Edit3.Text + '</td></tr>';
htmltext := htmltext + '</table>';
AssignFile(fp, 'C:\TEMP\tmp.html');
{$I-}
ReWrite(Fp);
{$I+}
IOError := IOResult;
if IOError <> 0 then begin
errmsg := '파일 쓰기 실패. IOResult = ' + IntToStr(IOError);
exit;
end;
Writeln(Fp, htmltext);
CloseFile(Fp);
frmPrint := TfrmPrint.Create(Application);
frmPrint.ShowModal;
frmPrint.Free;
end;
---- 소스코드 끝
출력물 폼 디자인
---- 소스코드
//form show 이벤트에서 tmp.html 불러오기
WebBrowser1.Navigate('C:\TEMP\tmp.html');
// 출력버튼
var
vIn, vOut: OleVariant;
begin
// 출력
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER, vIn, vOut);
end;
// 프린터 설정
var
vIn, vOut: OleVariant;
begin
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER, vIn, vOut);
end;
---- 소스코드 끝
HTML 파일로 저장하고 웹브라우져 컨트롤에서 읽어 오면
출력 컴포넌트 없이 간단하 출력물 작성이 가능합니다.
댓글
댓글 쓰기