Drukowanie - zawijanie wierszy

0

Witam,
piszę funkcję do drukowania (w Borlandzie). Załączam bibliotekę <Printers.hpp>, Robię

vector<AnsiString> tekst

do którego ładuję porcje tekstu (np. tekst[0] - tytuł, tekst[1] -temat, tekst[2] - długi tekst, aby odpowiednio sobie porozmieszczać na stronie.

Problem w tym, że "długi tekst" nie zawija się przy końcu strony, tylko wychodzi poza zakres. W TLabel i TMemo jest opcja WordWrap, która umożliwia zawijanie automatyczne. Poniżej przedstawiam trochę kodu:

int linia = Printer()->PageHeight/50.0;
int szer = Printer()->PageWidth/12.0;

	Printer()->BeginDoc();
	Printer()->Canvas->Font->Size = 20;
	Printer()->Canvas->Font->Name = "Times New Roman";
Printer()->Canvas->TextOut(szer*4, linia*3, tekst[0]); // tytuł
	 Printer()->Canvas->Font->Size = 14;
Printer()->Canvas->TextOut(szer, linia*6, tekst[1]);   // temat
	 Printer()->Canvas->Font->Size = 10;
Printer()->Canvas->TextOut(szer*2, linia*7, tekst[2]); // długi tekst
0

http://msdn.microsoft.com/en-us/library/dd162498(v=vs.85).aspx w szczególności DT_WORDBREAK i DT_CALCRECT

0

Jeśli chodzi o dzielenie na linijki to poradziłem sobie funkcją WrapText( tekst, int ).
Natomiast drukarka nie interpretuje mi tego, tylko wyrzuca tekst jak bez formatowania. Dla przykładu:

ShowMessage(tekst_sformatowany); 

wyrzuci mi ładnie wiadomość w postaci kilku linijek, natomiast

Printer()->Canvas->TextOut(x, y, tekst_sformatowany);

tak, jakby nie było formatowania. Może używam złej funkcji do wyrzucania tekstu na drukarkę? Są jakieś inne sposoby?

Myślałem nad tym, żeby wrzucić tekst do TStringList i drukować w pętli for dopóki TStringList->Count ale to to będzie działać nie wiem. Ale czy na pewno nie ma jakiegoś prostego sposobu? Problem nie wydaje się trudny, tylko kłania się niestety "nieznajomość" :(
Proszę o pomoc..

0

nie wiem, czy jesteś tępy czy czytać nie potrafisz czy może jeszcze coś innego. Przecież dałem ci linka do gotowego rozwiązania i nawet pokazałem paluchem dokładnie o co chodzi

0

Niestety czytać nie umiem i jestem na tyle tępy, by nie rozumieć dokumentacji technicznej. Udało mi się zrobić sposobem opisanym wyżej. Jednak jakbyś był miły albo ktoś i wytłumaczył to w prosty sposób, wsparł przykładem jak uzupełniać te funkcje to będę wdzięczny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1