想知道怎么动态设置word得各个边距?(30分)

  • 主题发起人 主题发起人 xzsnj
  • 开始时间 开始时间
X

xzsnj

Unregistered / Unconfirmed
GUEST, unregistred user!
我是自动生成word得,要动态设置左右边距,顶边距,底边距。
在网上找了一段没有用,报错误:
worddoc.PageSetup.LeftMargin := wordapp.InchesToPoints(0.75); // 左边距, 0.75英寸
worddoc.PageSetup.RightMargin := wordapp.InchesToPoints(0.75); // 右边距
worddoc.PageSetup.TopMargin := wordapp.InchesToPoints(1.5); // 顶边距
worddoc.PageSetup.BottomMargin := wordapp.InchesToPoints(1); // 底边距

希望谁能够给我贴出一段有用的。
 
把你的worddoc.

wordapp.selection.pagesetup.leftmargin:=wordapp.CentimetersToPoints(1.75);

改一下了。通过
 
With ActiveDocument.PageSetup do begin
TopMargin = CentimetersToPoints(0.75)
BottomMargin = CentimetersToPoints(0.75)
LeftMargin = CentimetersToPoints(1.5)
RightMargin = CentimetersToPoints(1)
End ;
 
to:蓝叶菱
你的答案我试了,报的错误是:为指定错误。
 
to:lihoulong,
我感觉你的答案都不是delphi得,就是我改过了
wordapp.PageSetup.TopMargin :=wordapp. CentimetersToPoints(0.75);
wordapp.PageSetup.BottomMargin :=wordapp. CentimetersToPoints(0.75);
wordapp.PageSetup.LeftMargin := wordapp.CentimetersToPoints(1.5) ;
wordapp.PageSetup.RightMargin := wordapp.CentimetersToPoints(1) ;
一样报错的
 
lihoulong的答案基本上是对的,他贴出来的是他录制的是宏,转为delphi就可以了。如果不是对当前文档设置要用到Documents对象
With wordapp.ActiveDocument.PageSetup do
begin
TopMargin := CentimetersToPoints(0.75);//这个函数有可能不能用,如果不对您可以用InchesToPoints之类试试,或者直接用数字,度量单位不同而已
BottomMargin := CentimetersToPoints(0.75);
LeftMargin := CentimetersToPoints(1.5);
RightMargin := CentimetersToPoints(1);
End ;
 
其实好多时候对office的操作.可以录制宏再调试一下就好了.
 
代码答案都正确,我这个代码完全测试过
procedure TForm1.BitBtn1Click(Sender: TObject);
var
FFileName:OleVariant;
begin
IF OD.Execute THEN
BEGIN
WordApp.Disconnect;
WordApp.Connect;
FFileName:=OD.FileName;
WordApp.Documents.OpenOld(FFileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordApp.ActiveDocument.PageSetup.LeftMargin:=WordApp.CentimetersToPoints(2.00);//使用wordapp.selecticon也可以。
WordApp.ActiveDocument.PageSetup.TopMargin:=WordApp.CentimetersToPoints(4.0);
WordApp.ActiveDocument.PageSetup.RightMargin:=WordApp.CentimetersToPoints(3.00);
WordApp.ActiveDocument.PageSetup.BottomMargin:=WordApp.CentimetersToPoints(3.0);

WordApp.Visible:=True;
WordApp.ShowMe;
END;
end;
测试平台d6 +win2003/ office 2000通过。
其实不难,看你的没有指定的错误,估计有其他方面的原因,比如office2003是盗版不好(市场有的就是),Delphi注册使用的是office 2000,等等,组件注册兼容上考虑。
 
好像你们说的在我这里执行不了,可能是office2003盗版原因吧。
最后我就这么写了,省的麻烦了:
WordApp.ActiveDocument.PageSetup.LeftMargin := 15;
WordApp.ActiveDocument.PageSetup.RightMargin := 15;
WordApp.ActiveDocument.PageSetup.TopMargin := 30;
WordApp.ActiveDocument.PageSetup.BottomMargin := 30;
 

Similar threads

I
回复
0
查看
610
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
488
import
I
后退
顶部