|
김한석 님이 쓰신 글 :
: 한 컴퓨터에 두개의 프린터(도트하나, 레이져하나) 드라이버가 설치되어있습니다.
:
: 그런데 제가 짠 프로그램에서 두개의 프린터를 다 사용해야합니다.
: A버튼을 누르면 퀵리포트에서 도트프린터로 인쇄가 되어야 하고 B버튼을 누르면 레이져로
: 인쇄가 되어야 합니다.
:
: 물론 기본프린터는 레이저프린터로 잡혀있죠.(엑셀, 한글등을 써야 하기때문에..)
:
: A버튼을 눌렀을때만 도트 프린터로 인쇄할수 있는 방법은 없을까요?
:
: 늘 감사드립니다.
:
:
: 그리고..저~~~ 밑에 임프님께서 쓰신 글중에서 도트는 퀵리포트에서 찍을수 없다(성공한 사례를
: 못보셨다고) 하셨는데..
:
: 전 찍었는데엽...-_-;;;
:
: 퀵리포트컴포넌트 안에서 인쇄용지를 커스텀사이즈으로 한 후...
: 그 용지에 맞는 크기를 지정해 줍니다.
:
: 그런후 프린터 드라이버에 가서(제어판->프린터) 해당 프린터에서 등록정보를 띄운후...
: 커스텀타입(주로 NT에서는 제공되지 않고 win98, 95에서는 제공됩니다)으로 정하고
: 사이즈를 위에서 설정한것과 같이 한후 인쇄를 하면 그 도트용지에 맞게 인쇄가 됩니다...
:
: 그럼 참고가 되셨길....( 흐헉~~~ 이건 임프님이 하실 말씀이구나 -_-;;;)
:
: 답변 부탁드릴께엽.. -_-;;;
:
임펠리테리입니다.
퀵레포트에서 해본적은 없습니다만, 아마도 될 겁니다.
TPrinter::PrinterIndex 와 TPrinter::Printers 프로퍼티를 이용하면 됩니다. TPrinter::Printers
는 TStrings형으로, 현재 설치된 프린터드라이버들이 리스팅되어 있습니다. 여기서 해당 프린터의
인덱스를 찾아 TPrinter::PrinterIndex 에서 지정해주면 됩니다.
두개의 프린트 버튼을 이용해서 프린터를 선택해 인쇄하게 하는 방법은 별로 좋지 않을 거 같네요.
만약 프린터가 두개가 아니라 셋 이상이 설치된 경우라면 그만큼의 버튼과 코딩이 필요하겠죠?
동적으로 프린터를 지정하는 가장 일반적인 방법은 콤보박스를 사용하는 것입니다.
다음과 같이 해보세요.
먼저 콤보박스를 하나 놓습니다. 그리고 폼의 OnShow 핸들러에 다음과 같은 코드를 추가합니다.
ComboBox1->Items->Assign(Printer()->Printers);
이렇게 하면 폼이 나타날 때 콤보박스에 현재 설치되어있는 프린터드라이버들의 리스트가
나타납니다.
그런 후에 콤보박스를 더블클릭해서 OnChange 핸들러를 작성합시다. 내용은 역시 다음의 한줄이면
됩니다.
Printer()->PrinterIndex = ComboBox1->ItemIndex;
이 라인은 콤보박스의 선택된 아이템이 바뀔때마다 그에 따라 현재 프린터를 다시 설정해주는
역할을 합니다.
그럼 참고하시길...
참.. 퀵리포트로 도트프린터 인쇄... 알려주셔서 감사합니다. ^^;;
|