我有一个定义页面设置的RTF文档:
(...}\paperw16840\paperh11907\margl794\margt709\margr794\margb983\viewkind4\\uc1\trowd\....)
在我的应用中,我使用TRichEdit
来显示文档。
TRichEdit
的{{1}}为TPanel
,正在使用Parent
和Align=alClient
。
我将Panel AlignWithMargins=True
设置为Width
(1123像素),我看到它等于页面的宽度,如MSWord所示(比例= 100%) )。
将RichEdit 16840 * PixelsPerInch/1440
设置为Margins
(53像素),RichEdit的794 * PixelsPerInch/1440
小于它必须的值,或者边距大于它们必须的(与MSWord相比)。
没有边框,没有其他边距,除了我在代码中设置的内容:
Width
function pixelsOf(prop : string) : integer;
var
i,j,l : integer;
begin
result := -1;
l := length(prop);
i := pos(prop,s);
if i > 0 then begin
j := i+l;
while s[j] in ['0'..'9'] do inc(j);
result := round(strToIntDef(copy(s,i+l,j-i-l),-1)*PixelsPerInch/1440);
end;
end;
paperW := pixelsOf('\paperw'); // pixelsOf() calcs twips*pixelsPerInch/1440
PanelPreview.Width := paperW;
Lm := pixelsOf('\margl');
RichEdit1.Margins.Left := Lm;
Rm := pixelsOf('\margr');
RichEdit1.Margins.Right := Rm;
Tm := pixelsOf('\margt');
RichEdit1.Margins.Top := Tm;
的值给出了正确的Panel宽度(与MSWord相比),但paperW
和Lm
的值提供了更大的边距,因此RichEdit变得更窄。
如何计算正确的边距,以便RichEdit与MSWord具有相同的布局?
这可能会有所帮助。我注意到了: