|
박지훈.임프 님이 쓰신 글 :
: 저는 레포트 작업을 많이 해보진 않았지만, 퀵레포트의 버그는 유명합니다.
: 특히 프린터 기종에 따라 되기도 안되기도 하는 버그가 심각하죠.
:
: 텍스트 데이터가 아닌 이미지만을 인쇄하시려는 모양인데, 그런 경우라면 레포트 종류가 아니라 TPrinter 객체를 이용해서 직접 프린터를 출력하는 게 훨씬 낫습니다. 복잡한 데이터를 포맷에 맞춰서 출력하려면 TPrinter 사용이 꽤 까다롭지만, 이미지들만을 적절히 레이아웃하는 정도라면 TPrinter에서도 그렇게 복잡하지 않게 할 수 있습니다.
:
: 특히 퀵레포트의 경우 C++빌더 2005 이상에서는 더 이상 기본 포함되어 있지 않기 때문에(2006과 2007 버전에서는 별도 다운로드가 가능하기는 합니다) 향후 소스코드의 호환성을 위해서라도 다른 방법을 강구하시는 것을 권합니다.
:
: 데이터 포맷 출력이 필요하든지 해서 굳이 레포트를 사용하시려면 기능이 더 강력하고 버그도 적은 RaveReport나 FastReprt가 낫습니다. RaveReport는 C++빌더 6 이후 버전에서 퀵레포트를 대체하는 기본 레포트 컴포넌트이고, FastReport는 별도 구입이 필요한 서드파티 컴포넌트입니다만 기능 면에서는 퀵레포트는 물론 Rave 레포트보다도 훨씬 뛰어납니다. 또한 완전히 자동화는 아니지만 퀵레포트로 디자인된 폼을 FastReport로 불러오는 기능도 지원합니다.
:
: 그럼..
:
:
: 구윤태 님이 쓰신 글 :
: : C++builder 6.0 사용합니다.
: : TQuickRep 사용했습니다.
: : TQRImage 사용하여 이미지를 넣어 줬습니다.
: :
: :
: : 우선 제가 삼성 , 캐논 레이저 , FinePrint 상으로 테스트 했을 때 정상이 었습니다.
: : (출력및 미리보기 기능 둘다 정상)
: :
: : HP Dekjet D1560 을 사용해서 프린터 하니까
: : FinePrint및 미리보기로 하면 정상적으로 프린트 내용물이 나오는데
: : 출력을 하면 프린트 내용 하단 이미지가 중간 좌측에 일부가 프린트 되어 나옵니다.
: :
: : 첨부한 파일중에 : 1.JPG 정상 (삼성 MJ8700 , 케논 레이저 , 미리보기 , finePrint)
: : 2.JPG 실제 프린트 되어 나오는 방식 (HP D1560 )
: :
: :
: : 프린트 출력 함수
: : void __fastcall TCMQPrintForm::printSheet1()
: : {
: : try
: : {
: : Sheet1->QuickRep1->Prepare();
: : Sheet1->QuickRep1->Printer->Title = "CMQ Dr Report1";
: : Sheet1->QuickRep1->Printer->Save("Results.QRP");
: : Sheet1->QuickRep1->Printer->Load("Results.QRP");
: :
: :
: : if(!mPName.IsEmpty())
: : {
: : if(!DirectoryExists("C:\\JPG"))
: : {
: : if(CreateDir("C:\\JPG")) WriteToBmpFile1("C:\\JPG\\" + mPName);
: : }
: : else WriteToBmpFile1("C:\\JPG\\" + mPName);
: : }
: :
: : //Sheet1->QuickRep1->Printer->PreviewModal();
: : Sheet1->QuickRep1->Printer->Print();
: : Sheet1->QuickRep1->Printer->Free();
: : Sheet1->QuickRep1->Free();
: : }
: : catch(...)
: : {
: : ShowMessage("Print Page 1 Error !");
: : }
: :
: : }
: :
: :
: : 원인을 모르겠습니다.
: : 답변을 부탁드립니다.
|