|
Memo에 입력된 내용을 용지의 일정 위치에 출력시키는 프로그램 일부입니다.
(생략)
int totHeight=160; //출력되는 시작점의 y값
AnsiString asTemp; //메모의 String길이가 종이와 맞지 않아 SubString()사용하여
//줄길이에 맞게 잘라 출력하려고
SetTextAlign(c->Handle,TA_LEFT);
c->Font->Size=9;
asTemp=Form1->Memo2->Text;//메모의 내용을 받아
int slCount=Form1->Memo2->GetTextLen();
for(int i=0;i<slCount;i=i+102)
{
totHeight+=(c->TextHeight(Form1->Memo2->Lines->Strings[0]));
c->TextOut(40, totHeight, asTemp.SubString(i,i+102));//102 간격으로 잘라 출력함
}
(생략)
이렇게 하면 Memo2에 입력된 내용이 (40,160)위치에서 약 62자 정도가 출력되고 라인을 바꿔서
다음줄이 출력되고 하옇든 모든 줄이 이어서 출력되기는 하는데....
문제가 둘째줄 이상의 맨 앞자가 2-3개씩 깨어져 출력되고 맨뒤에 몇자가 덧붙여저 출력되는데
누가 문제점을 해결할 수 있는 방법점 알려주세요....
그리고 102번째가 한글의 두음이 있으면(예를들면 감의 ㄱ부분이면) 그줄에 네모로 인쇄되니까 그 전까지만 인쇄되고 다음줄에 글자로 인쇄되도록 하는 것도 점 첨가해 주셔요......부탁^^
|