Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

QuickReport i TQRRichText

[es] :: Pascal / Delphi / Kylix :: QuickReport i TQRRichText

[ Pregleda: 1046 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 257
93.140.18.*



+2 Profil

icon QuickReport i TQRRichText12.12.2019. u 09:33 - pre 21 meseci
Koristim QRRichText kontrolu za ispis teksta koji kreiram u toku izvršenja programa.
Da li postoji mogučnost da se napravi poravnanje teksta Justify, tj. da tekst bude od margine do margine, da nije "nazubljen".
U property-ima ima mogučnosti: taCentar, taLeftJustify, taRightJustify

Ili možda neki drugi način ispisa teksta za kog ne znam unaprijed niti sadržaj niti veličinu?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2665



+73 Profil

icon Re: QuickReport i TQRRichText12.12.2019. u 11:59 - pre 21 meseci
Jedino da sam iscrtavas tekst putem DrawTextEx WinApi funkcije i tu ima ta opcija za poravnanje.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 799
31.223.145.*



+62 Profil

icon Re: QuickReport i TQRRichText13.12.2019. u 12:52 - pre 21 meseci
Radio sam to ne tako davno, napravio novi komponent od TQRMemo.

Dakle, treba pronaci u kodu komponenta gde se text split-uje u linije, i u svakoj liniji dopunjavati postojece praznine (izmedju reci) dodatnim space-ovima.
Krajnji rezultat je bio ok, ali nikad tako dobar kao sto radi recimo Word. To zato sto Word radi to isto na grafickoj osnovi ('umece' pixel-e, a ne space-ove).

 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 257
*.adsl.net.t-com.hr.



+2 Profil

icon Re: QuickReport i TQRRichText13.12.2019. u 14:23 - pre 21 meseci
Rapaic Rajko, hvala, nije mi palo na pamet :). Probat ću s ubacivanjem space-ova ili možda "i" ili "." s fontcolor = clWhite jer je "uži"
FastReport koji je uz Delphi XE 10 ima tu mogučnost, ali... stari, glomazni program... tko će platit njegovo prepisivanje...

Pokušavam dogovorit da samo taj dio programa (ispise) prebacim u novi Delphi.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 297
*.oriontelekom.rs.



+16 Profil

icon Re: QuickReport i TQRRichText13.12.2019. u 14:41 - pre 21 meseci
Nisam sa QR koristio ali kad god mi je trebalo nesto iz novijeg Delphija u starijem pravio sam dll.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 257
*.adsl.net.t-com.hr.



+2 Profil

icon Re: QuickReport i TQRRichText13.12.2019. u 16:58 - pre 21 meseci
Da li se može dobiti TextWidth na QuickReportu? Umetanje "i" mi izgleda OK, ali sam dodao tqrLabel, stavio Enabled := false (da se ne vidi na ispisu) i preko nje dobijem širinu retka. To mi je malo "zaobilazno".
Može li se dobiti (kao na formi) stvarna širina teksta, sa fontrom koji mi je zadan u rich-u, bez da ga upisujem u Caption labele?

Gledao sam malo kod same kontrole, prekomplicirano mi izgleda njega mijenjati...
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 799
31.223.145.*



+62 Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 09:01 - pre 21 meseci
Postoji metod TCanvas.TextWidth(aText: string): integer;

Treba ti neki Canvas. Ukoliko nije dostupan u samoj RichText kontroli (kroz property), mozes da ga kreiras. Zatim napucas Canvas.Font na font koji te zanima, i konacno pozoves Canvas.TextWidth().
Ukoliko kreiras Canvas, ne zaboravi da ga unistis (na kraju).
 
Odgovor na temu

delfi1122

Član broj: 340998
Poruke: 5
93.140.33.*



Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 09:35 - pre 21 meseci
Možda glupa ideja ali treba probati. U wordu spremiti .rtf kao full width poravnanje, kopirati tekst koji treba u taj .rtf file i onda ga učitati u Rich? Možda bi upalilo?
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 257
93.140.45.*



+2 Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 09:43 - pre 21 meseci
Imam problem pri prinutu, na preview je OK. Ne izgleda isto tekst. Funkcija jednako razlomi tekst, ali ne izgleda isto tj. na preview je lijepo poravnat, a na printu je i dalje nazubljen. Širina retka je dugačija.
Napravio sam sljedeće:
- kreiram tqrlabel koju postavim na isti band gdje mi je RichText, postavim font, lijevu marginu, širinu. Kad sam gotov - naravim free
- u labelu stavljam tekst, riječ po riječ dok ne dođem do max. širine koja je <= zadatoj
- idem od prvog space-a na dalje i dodajem po jedan dok ne dobijem širinu koja je <= zadatoj

Na Preview tekst izgleda sasvim ok (nije kao word, ali...), kad ga ispišem ili spremim u PDF, kao da je promijenjen font, nazubljenost je prilična.

Probao sam sa QRPrinter.Canvas.TextWidth, ako radim preview - ok, ali ako je print dobijem vrijednosti koje nemaju veze sa širinom teksta. Primjer za jedno slovo: label.width = 11; QRPrinter.Canvas.TextWidth = 66
 
Odgovor na temu

delfi1122

Član broj: 340998
Poruke: 5
93.140.33.*



Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 09:56 - pre 21 meseci
Probaj iz worda (poravnano) kopirati u Richtext i probaj to isprintati da vidimo kako će ispasti.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 297
*.oriontelekom.rs.



+16 Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 15:09 - pre 21 meseci
Evo koda koji je za high a na isti nacin moze da se koristi za width.

Inace QR sam napisao da ne koristim a ovaj kod sam nasao jer kako to inace radi.


Code (delphi):

var
 W, x, y: Integer;
 R: TRect;
 Scale, TxtHeight: Extended;
 cap: String;
begin
 Scale := QRPrinter.XFactor / Screen.PixelsPerInch * 254;
 QRPrinter.Canvas.Font := Font;
 QRPrinter.Canvas.Font.Height := Round(Scale * Font.Height);

 SetRect(R, QRPrinter.XPos(OfsX + Size.Left),
   QRPrinter.YPos(OfsY + Size.Top),
   QRPrinter.XPos(OfsX + Size.Left + Size.Width),
   QRPrinter.YPos(OfsY + Size.Top + Size.Height));
 if not Transparent then
   with QRPrinter.Canvas do
   begin
     Brush.Color := Color;
     Brush.Style := bsSolid;
     FillRect(R);
     Brush.Style := bsClear;
   end;
 W := Round(Scale * 2);
 Frame.InsideRect(R, W);
 TxtHeight := (Canvas.TextHeight('W')) * Scale;

 Cap := 'Some text for print';
 W2 := QRPrinter.Canvas.TextWidth(Cap);
 Y := R.Top + Round(TxtHeight);
 X := R.Left;

 Frame.InsideRect(R, -W);
 ExtTextOut(QRPrinter.Canvas.Handle, X, Y, ETO_CLIPPED, @R, @Cap[1], Length(Cap), nil);
 Frame.InsideRect(R, W);

 PrintFinished := True;
 Frame.InsideRect(R, -W);
 Frame.PaintIt(QRPrinter.Canvas, R, Zoom, []);
end;
 

 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 257
93.140.45.*



+2 Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 15:21 - pre 21 meseci
Uspio sam, delfi1122 mi je dao dobru ideju. Ako će nekom trebati:

- Kreirao sam u word-u prazan dokument, poravnao redak (Justify) i spremio kao RTF
- prije upisa teksta u TQRRichText napravil .Lines.LodaFromFile('moj.rtf')
- Dodam tekst koji mi treba (.lines.Append('Neki tekst')

rtf sam linkao u exe preko resource file-a i radi ok.
Prview i print su odlični, lijepo poravnati. Još ostaje problem sa SaveToPDF, prvi redak teksta je "razmrljan", slova duplicirana, kao kad je nekad glava s trakom vukla traku po papiru.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 257
93.140.45.*



+2 Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 15:40 - pre 21 meseci
tkaranovic, zar to nije ispis direktno, bez slaganja forme u qr-u?
Imam TQRRichText na qr-u koji popunjavam. Kako to napraviti s tvojim kodom?
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 297
*.oriontelekom.rs.



+16 Profil

icon Re: QuickReport i TQRRichText16.12.2019. u 15:59 - pre 21 meseci
Jeste direkno ali 66 daje ili zato sto fali isti font ili zato sto je XFactor drugaciji kad printuje.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 257
*.cust.tele2.hr.



+2 Profil

icon Re: QuickReport i TQRRichText14.01.2020. u 19:37 - pre 20 meseci
Nadopuna. Moja ideja Word -> rtf -> ispis je OK ako radite samo ispis, ali ako radite export u PDF, odustanite... Shvatio sam to nakon 3.000 ispisani i exportiranih u PDF.
Rtf tekst je "razmrljan", izgleda kao da glava štampača struže po papiru i razmazuje slova.

Nema mi druge ne taj kod napisati u Delphi XE, on ima to pravnanje. Program je preglomazan da ga cijelog pišem (nitko neće platit), samo ću taj dio pa ga pozivati kao vanjski, ne koristi se često.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: QuickReport i TQRRichText

[ Pregleda: 1046 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.