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
[12634] [질문] 98에서 텍스트 프린팅이 안되는 데에 대한 재질문...
Jun [hjuni11] 632 읽음    2001-11-13 22:02
안녕하세요...여러 가지 테스트를 하고 다시 질문드립니다.
richedit를 사용하여 프린트를 하는 방법으로 세 가지를 시도했는데요...그 방법은 아래와 같습니다.

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

  TPrinter *Prntr = Printer();
  TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight - 200);
  Prntr->BeginDoc();
  Prntr->Canvas->TextRect(r, 200, 200, RichEdit1->Lines->Text);
  Prntr->EndDoc();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    TPrinter *p = Printer();
    p->BeginDoc();
    PrintText(p->Canvas);
    p->EndDoc();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
    if ( PrintDialog1->Execute() ) RichEdit1->Print(Form1->Caption);
}
//---------------------------------------------------------------------------

void TForm1::PrintText(TCanvas *Canvas)
{
    int i,h;
    AnsiString S(Form1->Caption);
    h = Canvas->TextHeight(S);
    for(i=0;i<RichEdit1->Lines->Count;i++)
    {
        S=RichEdit1->Lines->Strings[i];
        Canvas->TextOut(1,h*i,S);
    }
}

버튼 1을 눌렀을 때와 2,3을 눌렀을 떄 모두 다른 방법으로 프린트를 해보았는데(제대로 한 건지는 모르겠어요...) 모두 제대로 나오지 않았습니다...

richedit에 텍스트를 뿌리는 방법은 db에서 rtf포맷을 읽어와서 rtfheader와 폰트테이블등 폰트 정보를 붙여주고 rectrl이라는 richedit를 상속받은 놈에 addrtfcontent함수를 만들어 rtf코드를 넘겨주어 richedit에 뿌려주는 형식으로 되어있습니다.

예를 들어 a\u243?bcd\f1 \u2055? \f0 efg 라는 텍스트를 rtfheader와 테일,폰트테이블을 붙여서 addrtfcontent에 넘겨주면 richedit에는 제대로 된 텍스트가 찍혀 나옵니다. (\f1이 직접 만든 폰트입니다.)
헌데 만약 이 텍스트를 98에서 인쇄하면 a bcdㅁefg라고 찍혀서 나옵니다...
\u243?은 찍히지 않고 \f1 \u2055? \f0 는 1바이트짜리 네모가 찍혀 나와요...

유니코드의 문제인지 rtf의 문제인지 richedit의 문제인지 프린트 설정의 문제인지 도무지 원인조차 찾고 있지를 못해 답답할 따름입니다..

조언해주실 분 답변 부탁드립니다...ㅜ.ㅜ

+ -

관련 글 리스트
12634 [질문] 98에서 텍스트 프린팅이 안되는 데에 대한 재질문... Jun 632 2001/11/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.