WYSIWYG editing is not supported.
You can see pages as they will be printed only in TRVPrintPreview component, not in TRichView or TRichViewEdit.
You can set text wrapping width to the value close to the page width, but it will give you only approximate results.
Code: Select all
var w, h: Integer;
// rvoClientTextWidth must be excluded from RichViewEdit1.Options.
GetPageSize(RVPrint1, w,h);
RichViewEdit1.MaxTextWidth :=
w-RichViewEdit1.LeftMargin-RichViewEdit1.RightMargin;
RichViewEdit1.Format;
procedure GetPageSize(RVPrint: TRVPrint;
var Width, Height: Integer);
var DC: HDC;
phoX, phoY, phW, phH, lpy, lpx, LM, TM, RM, BM: Integer;
begin
DC := RV_GetPrinterDC; // from PtblRV unit
Width := GetDeviceCaps(DC, HORZRES);
Height := GetDeviceCaps(DC, VERTRES);
lpy := GetDeviceCaps(DC, LOGPIXELSY);
lpx := GetDeviceCaps(DC, LOGPIXELSX);
phoX := GetDeviceCaps(DC, PHYSICALOFFSETX);
phoY := GetDeviceCaps(DC, PHYSICALOFFSETY);
phW := GetDeviceCaps(DC, PHYSICALWIDTH);
phH := GetDeviceCaps(DC, PHYSICALHEIGHT);
LM := MulDiv(RVPrint.LeftMarginMM, 5*lpx, 127)- phoX;
TM := MulDiv(RVPrint.TopMarginMM, 5*lpy, 127)- phoY;
RM := MulDiv(RVPrint.RightMarginMM, 5*lpx, 127)- (phW-(phoX+Width));
BM := MulDiv(RVPrint.BottomMarginMM, 5*lpy, 127)- (phH-(phoY+Height));
if LM<0 then LM := 0;
if TM<0 then TM := 0;
if RM<0 then RM := 0;
if BM<0 then BM := 0;
dec(Width, LM+RM);
dec(Height, TM+BM);
DeleteDC(DC);
DC := GetDC(0);
Width := MulDiv(Width, GetDeviceCaps(DC, LOGPIXELSX), lpx);
Height := MulDiv(Height, GetDeviceCaps(DC, LOGPIXELSY), lpy);
ReleaseDC(0, DC);
end;