怎么通过Excel控制打印预览中打印纸张的大小和宽高(100分)

  • 主题发起人 主题发起人 jackalwin
  • 开始时间 开始时间
J

jackalwin

Unregistered / Unconfirmed
GUEST, unregistred user!
通过OLE创建的Excel对象,
xlapp;variant;
...
怎样通过控制xlapp来控制打印预览中打印纸张的大小和宽高
 
with xlapp.ActiveSheet.PageSetup do
begin
PaperSize := xlPaperA3;//A3幅面,xlPaperA4 A4幅面
LeftMargin := xlapp.InchesToPoints(0.748031496062992); //左边距
RightMargin := xlapp.InchesToPoints(1.14173228346457); //右边距
TopMargin := xlapp.InchesToPoints(1.18110236220472); //上边距
BottomMargin := xlapp.InchesToPoints(0.984251968503937); //下边距
end;
 
用的时候Try一下,如果机器上安装的打印机不支持A3幅面打印的话会有报错!
设置好纸型之后可以通过
xlapp.ActiveSheet.PageSetup. Zoom := 95; //设置缩放比率,这个为95%
设置纸的缩放比率.
 
编译未通过,报错:未经申报的标识符:xlPaperA3,我换了xlPaperA4也不行 是我需要添加什么单元么?
 
在help找一下,看它属于哪个unit,然后uses
 
好象不是这么回事,xlPaperA4是个常量应该
 
BottomMargin := xlapp.InchesToPoints(0.984251968503937); //下边距
个人建议 最好不要使用 因为InchesToPoints不定在 哪台机器上就不好使,本人遇 过n次了
以下是设置左边距和有边距的,这个数字 “1” 究竟代表多长,我也不知道,你自己是是看吧 呵呵

Excelid.WorkSheets[1].PageSetup.LeftMargin := 1;
Excelid.WorkSheets[1].PageSetup.RightMargin := 1;
Excelid.WorkSheets[1].PageSetup.PaperSize := xlPaperA5;
还有 关于设置 纸的大小,一定 要设置成 你的 打印机 支持的 纸的类型,要不然报错
另外 说下,如果你要是为了,正好能在 一张a4纸上打下的 话 你可以利用 excel的 打印范围 功能啊 具体操作 文件——页面设置—— 选中 调整为一页高 一页宽
 
InchesToPoints函数在office97下可能异常,Excelid.WorkSheets[1].PageSetup.LeftMargin := 1;这里的1是point(点!是打印机分辨率中的概念)如果直接用数字要设大些。
 
to newsmile:
InchesToPoints此函数在97下异常与否我未经试验,但是 我在别人的机器上 测试过,
装的是2003 出现 异常。
另 打印机中的点 就是 根据 不同的打印机 有可能不同了?
 
to maldini310 :
还有 关于设置 纸的大小,一定 要设置成 你的 打印机 支持的 纸的类型,要不然报错
关于这句话我不太理解 能不能详细的解释一下~
还有打印机不支持A4纸的么?
 
还有个问题: sheet.PageSetup.PrintGridLines := true; //打印单元网格线
为什么我打印预览的时候看不到单元网格线
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1211360
 
to jackalwin:
还有打印机不支持A4纸的么?

那么 请问 所有的机器 都支持 A3纸吗?
 
接受答案了.
 
后退
顶部