RichView RichEdit SRichViewEdit PageSize 设置与同步
使用RichView,创建Doc文件时,通过设置好TRVDocParameters设置好页面后,生成的Doc文件或Rtf文件时,文件是保存了Page的设置,但创建的文件,需要导入DBSRichViewEdit保存后,末能导入Page设置数据,同时通过DBSRichViewEdit,显示不能同步Page的设置。
通常我们文档的Page设置,通过TRVDocParameters设置:
参考上述参数,设置:
- procedure SetDocParameters(DP: TRVDocParameters;sPage:string);
- begin
- if sPage='A4' then
- begin
- DP.PageWidth := 210; // 单位是毫米
- DP.PageHeight := 297;
- DP.LeftMargin := 40;
- DP.RightMargin := 25;
- DP.TopMargin := 30;
- DP.BottomMargin := 30;
- DP.HeaderY := 10;
- DP.FooterY := 10;
- end;
- if sPage='A5' then
- begin
- DP.PageWidth := 148;
- DP.PageHeight := 210;
- DP.LeftMargin := 30;
- DP.RightMargin := 20;
- DP.TopMargin := 20;
- DP.BottomMargin := 20;
- DP.HeaderY := 10;
- DP.FooterY := 10;
- end;
- end;
这样,我们就能通过代码,设置指定页面的DOC文档了。
例如:过程 procedure Generate(sPage:string); 就是创建文本的过程,具体代码略。
当执行 Generate(‘A4')和 Generate(‘A5')时,由于SRichViewEdit默认什是A4,屏幕显示的都是A4的内面。
上图A4界面,下图A5界面。
经研究TSRichViewEdit类,修改或设置Page页面的数据,只能通过PageProperty属性创建或修改。
在procedure Generate(sPage:string);,代码中,通过流导入文档时,加入代码:
- if sPage='A4' then
- begin
- RV.PageProperty.PageWidth := 21; // 单位是厘米
- RV.PageProperty.PageHeight := 29.7;
- RV.PageProperty.LeftMargin := 4;
- RV.PageProperty.RightMargin := 2.5;
- RV.PageProperty.TopMargin := 3;
- RV.PageProperty.BottomMargin := 3;
- RV.PageProperty.HeaderY := 1;
- RV.PageProperty.FooterY := 1;
- end;
- if sPage='A5' then
- begin
- RV.PageProperty.PageWidth := 14.8;
- RV.PageProperty.PageHeight := 21;
- RV.PageProperty.LeftMargin := 3;
- RV.PageProperty.RightMargin := 2;
- RV.PageProperty.TopMargin := 2;
- RV.PageProperty.BottomMargin := 2;
- RV.PageProperty.HeaderY := 1;
- RV.PageProperty.FooterY := 1;
- end;
实现RichEdit SRichViewEdit PageSize 同步显示。