ImageEn, unit iexRichEdit
TIERichEdit.PaintTo
Declaration procedure PaintTo(DestDC: HDC; R: TRect; HAlign: TIEHAlign = iehLeft; VAlign: TIEVAlign = ievTop; ScaleX: Double = 1; ScaleY: Double = 1; AllowWrapping: Boolean = True); overload; procedure PaintTo(Bitmap: TBitmap; R: TRect; HAlign: TIEHAlign = iehLeft; VAlign: TIEVAlign = ievTop; const PaintBackground: Boolean = False; ScaleX: Double = 1; ScaleY: Double = 1; AllowWrapping: Boolean = True); overload; procedure PaintTo(Bitmap: TBitmap; Margin: Integer = 0; HAlign: TIEHAlign = iehLeft; VAlign: TIEVAlign = ievTop; const PaintBackground: Boolean = False; ScaleX: Double = 1; ScaleY: Double = 1; AllowWrapping: Boolean = True); overload; procedure PaintTo(Bitmap: TIEBitmap; R: TRect; HAlign: TIEHAlign = iehLeft; VAlign: TIEVAlign = ievTop; const PaintBackground: Boolean = True; const EnableAlpha: Boolean = False; ScaleX: Double = 1; ScaleY: Double = 1; AllowWrapping: Boolean = True); overload; procedure PaintTo(Bitmap: TIEBitmap; Margin: Integer = 0; HAlign: TIEHAlign = iehLeft; VAlign: TIEVAlign = ievTop; const PaintBackground: Boolean = True; const EnableAlpha: Boolean = False; ScaleX: Double = 1; ScaleY: Double = 1; AllowWrapping: Boolean = True); overload; Description
Draw the content to a
TIEBitmap or TBitmap.
HAlign and
VAlign specify the alignment of the text on the image.
If
PaintBackground is true, the editor background is painted to the image (i.e. the image will have the same solid color background as the Editor, typically white). If false, the existing background (non-text area) of the image will be preserved.
If
EnableAlpha is true, the background (non-text area) will be be
transparent .
The Scale properties allow you to zoom the content (i.e. make text appear bigger or smaller).
Set AllowWrapping to false to force text to be drawn on a single line regardless of fit.
// Paint rich editor content to TImageEnView const Text_Margin = 30; var bmp : TIEBitmap; imgW, imgH, textW, textH: Integer; textRect: TRect; begin imgW := ImageEnView1.Width; imgH := ImageEnView1.Height; textW := imgW - 2 * Text_Margin; // Calc height of text at this width textH := IERichEdit1.TextHeight( 0, textW ); textRect := Rect( Text_Margin, Text_Margin, Text_Margin + textW, Text_Margin + textH ); bmp := TIEBitmap.Create; try bmp.width := imgW; bmp.height := imgH; // Load an image to use as background? if not ( chkUseEditorBackground.checked or chkEnableAlpha.checked ) then bmp.LoadFromFile('D:\TextBackground.jpg'); IERichEdit1.PaintTo( bmp, textRect, iehLeft, ievTop, chkUseEditorBackground.checked, chkEnableAlpha.checked ); ImageEnView1.Assign(bmp); finally bmp.Free; end; // Paint rich editor content to TImage const Text_Margin = 30; var bmp: TBitmap; imgW, imgH, textW, textH: Integer; textRect: TRect; begin imgW := Image1.Width; imgH := Image1.Height; textW := imgW - 2 * Text_Margin; // Calc height of text at this width textH := IERichEdit1.TextHeight( 0, textW ); textRect := Rect( Text_Margin, Text_Margin, Text_Margin + textW, Text_Margin + textH ); bmp := TBitmap.Create; try bmp.width := imgW; bmp.height := imgH; // Load an image to use as background? if not chkUseEditorBackground.checked then bmp.LoadFromFile('D:\TextBackground.bmp'); IERichEdit1.PaintTo( bmp, textRect, iehLeft, ievTop, chkUseEditorBackground.checked ); Image1.Picture.Assign(bmp); finally bmp.Free; end; end; // Output an RTF file as an image const Out_Width = 500; Out_Height = 800; Text_Margin = 20; var re : TIERichEdit; bmp: TIEBitmap; textRect: TRect; begin bmp := TIEBitmap.Create; re := TIERichEdit.CreateParented(HWND(HWND_MESSAGE)); try re.Visible := False; re.WordWrap := False; re.OpenFromFile( 'D:\RTF Document.rtf' ); bmp.width := Out_Width; bmp.height := Out_Height; textRect := Rect( Text_Margin, Text_Margin, Out_Width - Text_Margin, Out_Height - Text_Margin ); re.PaintTo( bmp, textRect, iehCenter, ievCenter, True ); bmp.SaveToFile('D:\RtfImage.jpeg' ); finally bmp.Free; re.Free; end; end;
Loading contents...