Jeśli naprawdę chcesz wygenerować treść RTF przy użyciu TRichEdit
, powinieneś przechowywać natywny RTF generowany obok przekonwertowanego HTML. Jeśli jedynym powodem, dla którego używasz TRichEdit
, możesz mieć proste możliwości formatowania, prawdopodobnie lepiej jest użyć kontrolki edycji HTML, która generuje natywną treść HTML.
Bez względu na to, w którą stronę się wybierasz, najlepiej jest zapisać macierzysty format, aby użytkownicy mogli edytować zawartość i przekonwertować ją w razie potrzeby na inne formaty (zamiast konwertować w obu kierunkach).
Jeśli używasz TRichEdit
, a następnie można łatwo przesyłać strumieniowo zawartość w formacie RTF i poza kontrolą, chociaż polecam TJvRichEdit
nad TRichEdit
:
procedure GetRTFData(MS: TMemoryStream; RTF: TRichEdit);
begin
MS.Clear;
RTF.Lines.SaveToStream(MS);
MS.Position := 0;
end;
procedure SetRTFData(MS: TMemoryStream; RTF: TRichEdit);
begin
MS.Position := 0;
RTF.StreamFormat := sfRichText;
RTF.Lines.LoadFromStream(MS);
end;
Ręcznie konwersji RTF do HTML nie jest łatwym zadaniem. Istnieją rozważania dotyczące znaków Unicode, style czcionek, kody czcionek, formatowanie akapitów, listy numerowane, specjalne znaki HTML i wiele innych. Mimo że potrzebujesz tylko obsługi prostego formatowania, użytkownicy często korzystają z innych funkcji, które powodują bóle głowy związane z konwersją - takich jak kopiowanie zawartości z MSWord i wklejanie jej do aplikacji przy użyciu różnych formatów i stylów czcionek.
JvRichEditToHtml
robi przyzwoitą pracę przekształcając RTF na HTML, ale skończyło się na pisaniu własnej jednostki konwersji, ponieważ robimy o wiele więcej z RTF niż proste formatowanie. JvRichEditToHtml
powinien z łatwością obsługiwać to, co opisałeś, o ile użytkownicy nie wprowadzają złożonych treści za pomocą funkcji kopiuj/wklej, lub użyj skrótów klawiaturowych do sformatowania treści (np. Punktory = ctrl + shft + L, wcięcie = ctrl + M itp.).
Istnieje również kilka dobrych kontrole edit HTML dla Delphi, jeśli chcesz ominąć zawiłości authoringu w formacie RTF i konwersja do formatu HTML:
Google Results :: Delphi, HTML, Editor, Component
Stack Overflow :: Delphi, HTML, Editor, Component
Używamy TRichView
z powodu jego rozległe możliwości. Może ładować/tworzyć RTF i eksportować HTML. Nie jest jednak bezpłatny. Jeśli szukasz czegoś darmowego, dobrym wyborem są TJvRichView
i JvRichEditToHtml
.
Jest handlowych, łatwy w użyciu RTF do HTML/RTF do XHTML kalkulator biblioteki dla Delphi nazywa ScroogeXHTML, które mogą być skonfigurowane tak, aby przetwarzać tylko podstawowe właściwości czcionek. (zrzeczenie się: jestem autorem tej biblioteki) – mjn
A ile kosztuje ta biblioteka? – PSyLoCKe
Można go znaleźć na ['tej stronie'] (http://www.habarisoft.com/scroogexhtml_delphi.html) ;-) – TLama