|
Export of RichView Content to HTML |
Top Previous Next |
|
Overview RichView has methods for saving HTML files. There are no methods for reading HTML files in current version (use free addon: TrvHtmlImporter). RichView saves HTML file and a set of image files. By default, images are saved as Jpegs (*.jpg). If you do not want to use TJpegImage class, you can define RVDONOTUSEJPEGIMAGE conditional define when compiling, and images will be saved as bitmaps. You can specify graphic formats that must not be converted to Jpegs. Besides, you can save images yourself in custom formats using OnHTMLSaveImage or OnSaveImage2 event (see demo in Demos\Delphi\Assorted\Save HTML\) There are two ways to save HTML in RichView:
HTML files which were saved with the first way can be read by larger number of programs (including TrvHtmlImporter). HTML files with CSS retain much more formatting properties of RichView document (they look almost exactly like RichView content when using a capable browser) and have much more elegant and compact HTML code. Such files can be successfully viewed for example with MS Internet Explorer 4+, Netscape Navigator 4+, MS Word 2000+; but when viewed, for example, with MS Word 97 they lose all formatting. TRVHtmlImporter does not support CSS generally, but it can read HTML with CSS files saved by TRichView. Saving Using <font> Tags function RichView.SaveHTML(const FileName,Title, ImagesPrefix: String; Options: TRVSaveOptions):Boolean; FileName – file name. Title – title of document (tag <title>). Return value – "saving was successful?" ImagesPrefix – first part of images file names. For example, if ImagesPrefix='img' then images will be saved as img1.jpg, img2.jpg and so on (or img1.bmp, img2.bmp and so on, see above). If rvsoOverrideImages in Options then all files with the same names will be overridden. Otherwise, the component will make unique file names for images. Saved jpegs or bitmaps are not transparent. When converting to jpeg or bitmap, transparent color of icons or metafiles converted to the background color of RichView. You can change saving of images using OnHTMLSaveImage or OnSaveImage2 events. Checkpoints are saved as <a name=RichViewCheckpoint#></a> where # is an index of checkpoint. If rvsoUseCheckpointsNames is in Options, checkpoint name is used instead. RichView uses Charset property of 0th text style to save language of HTML file (for Delphi 3+). There is also an option to save Unicode (UTF-8) HTML files. When saving with SaveHTML method, many formatting properties are lost (such as text and paragraph background colors, borders, hover color, all margins/indents, font sizes are converted to 7 available HTML font sizes). Centered and stretched background bitmaps become tiled. Saving Using CSS function RichView.SaveHTMLEx(const FileName, Title, ImagesPrefix, ExtraStyles, ExternalCSS, CPPrefix: String; Options: TRVSaveOptions):Boolean; This method is not an extension of SaveHTML method – this is a completely different method. It saves HTML using style sheets (CSS). CSS can be saved inside HTML file or this method can place only a reference to external CSS file into this HTML file External CSS file can be saved using SaveCSS method of RichView.Style: You can save your style sheet one time and use it for all saved HTML files (if they all use the same collection of styles). This method allows you to reduce size when saving several HTML files with the same text and paragraph styles. Font families are stored in CSS for the most frequently used fonts. For example, if font name is 'Arial', the string 'Arial', 'Helvetica', sans-serif will be saved. ExtraStyles is a string that can contain additional styles for your own use. RichView will not use these styles, but you can use them when saving, for example, controls and URLs. CPPrefix is a first part of name used when saving checkpoint. If CPPrefix='' then RichView uses standard name ('RichViewCheckPoint'). For example, if CPPrefix='label' then checkpoints will be saved as <a name=label#></a> where # is an index of checkpoint. If rvsoUseCheckpointsNames is in Options, checkpoint name is used instead. Usually you do not need to use advanced parameters and can write: MyRichView.SaveHTMLEx(MyFileName, MyTitle, MyImagesPrefix, '', '', '', []); Saved HTML looks exactly like RichView with the exceptions:
SaveHTMLEx saves all text of "Symbol" font as a set of HTML character entities or Unicode codes. For example, the text 'a+b=g' of "Symbol" font (α+β=γ) is saved as 'α+β=γ' Pros:
Cons:
Common for the Both Methods By default, hypertext links are not saved (saved as a normal text). However, you can save them in the event OnWriteHyperlink. By default, inserted controls are not saved. However, you can save them in the event OnSaveComponentToFile. You can save additional information in HTML in the events: OnSaveHTMLExtra, OnSaveParaToHTML. You can insert HTML codes in text. You can completely change saving of items of any type in HTML using OnSaveItemToFile event. There is a set of methods for saving HTML files to stream: TRichView.SaveHTMLToStream, TRichView.SaveHTMLToStreamEx, TVStyle.SaveCSSToStream. There is also a possibility to save only part of HTML document (opening part, middle part, closing part) – useful if you use HTML output of RichView only as a part of HTML document. Known problems: Numeration of checkpoints starts from 0 in each table cell. So, it's recommended to use checkpoint names as identifiers (add rvsoUseCheckpointsNames in Options). Some ideas what may be implemented in future
See also...
|