formater tekstów

0

Potrzebny kod - jakaś klasa do precyzyjnego rysowania tekstów w ramkach z różnymi stylami.

Coś jak richedit ale bez tej rozbudowane i skomplikowanej edycji,
po prostu człowiek wpisuje tylko tekst, i sam używa sporadycznie specjalnych kodów do zmiany stylu, np.:

Trampolina \c=grin zielona do kwadratu H\d2 SO\d4

czyli znak specjalny \ i potem jakiś symbol, plus opcjonalne = i dane również wprost w tekście.
\k - kolor, \u - indeks górny, \d - dolny, \b - bold, \i - italic,
\s=12, nowy rozmiar czcionki, może też zmiana fonta: \f=arial,
wyrównywanie do lewej: \l, \c - centrowanie, prawa \r, i \j - pełne justowanie, takie gazetowe.

Może przydałyby się niekiedy nawiasy: \c=blu{niebieskie migdały},
a może nie potrzeba aż tak komplikować - można tu dwa razy użyć \c i to samo będzie.

0

Możesz pisać tekst w RTF (podstawowe tagi są proste), albo konwertować twój format na RTF, i wyświetlać RichEditem (który wewnętrznie korzysta właśnie z RTF).

Przykład:

{\rtf1
{\colortbl;\red0\green255\blue0;}
Ala ma\i  dwa\i0  \cf1 zielone\cf0  koty.
}

Efekt (plik tekstowy zapisany z rozszerzeniem .rtf i otwarty pod WordPadem):
wp.png

Nie jest to przyjazna składnia, ale jak już mówiłem, można wymyśleć coś prostszego i przekształcać do RTF.

Albo wykorzystać jakąś kontrolkę typu WebBrowser i pisać w HTML (albo konwertować do HTML).

0

Może i tak być.

Ale czy richedit potrafi justować tak gazetowo: lewo prawo naraz idealnie?
I czy oblicza to poprawnie znaczy niezależność od urządzenia,
musiałby to obliczać zawsze tak samo, nie dopiero na docelowym urządzeniu.

1

Możesz napisać generator kodu TeXu, albo LaTeXu ;) Potem taki kod przejedziesz generatorem PDF i będzie niezależne.

0
Spine napisał(a):

Możesz napisać generator kodu TeXu, albo LaTeXu ;) Potem taki kod przejedziesz generatorem PDF i będzie niezależne.

Na to samo wychodzi.
Teraz kod latexa musi być niezależny od sprzętu i wtedy możesz sobie to drukować na postscriptowej, czyli eps, który jest równoważny z pdf.

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