C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18663] Re:리스트뷰의 내용 프린트하기
유영인 [Chris] [cuperido] 947 읽음    2002-05-20 10:49
1. Canvas 를 직접 다뤄서 사용하시는 방법이 있습니다.
BeginDoc을 미리해주고, Canvas에 계산을 해서 쭉쭉 그려낸 담에, EndDoc를 해주는 방법이 있겠죠. 물론 처리가 많이 필요하다고 생각됩니다.


2. 베이직처럼 이용하는 방법
베이직에서 Print #1, "Hello" 이용하는 것처럼 이용하는 방법이 있습니다. 하지만, 네트워크 프린터에서는 동작을 하지 않고요, 어떤 사람은 2000에서도 동작을 안한다는 사람도 있는데, 대부분이 잘 동작합니다. (아마도 그 사람의 특성을 타는것 같군요)

아래 예제는 버튼을 클릭하면 stString의 내용을 찍는 예제입니다. 일반 낱장연속공급용지에서는 결과가 어떻게 나올지 모르겠네요.


//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

unsigned long     itLength;
HFILE             hfPrinter;
OFSTRUCT          osStruct;
String            stString;

hfPrinter = OpenFile("LPT1", &osStruct, OF_WRITE);
stString  = "HELLO";

if(hfPrinter) {
   WriteFile((void *)hfPrinter, stString.c_str(), stString.Length(), &itLength, NULL);
   WriteFile((void*)hfPrinter, "\n\r\0", 3, &itLength, NULL);

   CloseHandle((void*)hfPrinter);
}

}
//---------------------------------------------------------------------------

참새 님이 쓰신 글 :
:
:  그동안 많은 질문과 답변을 통해
:  나름대로 처음이지만 빌더를 이용한 작업 결과들이
:  하나둘씩 눈에 보이는 것 같아
:  즐겁습니다.
:  이제 거의 마무리 단계인데요.
:  저는 리스트뷰에 서버와의 소켓통신을 통해
:  얻어온 값을 한라인씩 기록하고 있습니다.
:  그런데 그 값을 프린트하려면 어떻게 하나요?
:  전체를 한번에 프린트하는 것은 bigindoc(), enddoc()
:  과 같은 것을 이용하면 되는데
:  제가 해야 하는 것은 리스트뷰에 한라인이 들어오면
:  그 라인을 프린트로 보내는 것입니다.
:  프린트는 예전 도트(라인)프린트라 A4지와 같이 한장
:  단위가 아닌 길게 연결되어 나오는 종이거든요..
:  그래서 한라인씩 보내서 그 정보를 리스트뷰에
:  표시된 것을 똑같이 프린트하는 것입니다.
:  설명이 제대로 되었는지 모르겠네요.
:  어찌보면 한라인씩 프린트 디바이스로 보내는 거라
:  어려울 것 같지 않았는데 잘 안되네요.
:  그럼 조언 부탁드립니다. 일요일에도 이문제땜에 고생하고
:  있습니다. 그럼...

+ -

관련 글 리스트
18650 리스트뷰의 내용 프린트하기 참새 732 2002/05/19
18663     Re:리스트뷰의 내용 프린트하기 유영인 [Chris] 947 2002/05/20
18693         Re:Re:리스트뷰의 내용 프린트하기 참새 772 2002/05/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.