我写的Jsp程序调用IE的页面打印方式答应当前页面,有什么方法可以控制IE打印纸张的高度和宽度?(200分)

  • 主题发起人 主题发起人 青萍
  • 开始时间 开始时间

青萍

Unregistered / Unconfirmed
GUEST, unregistred user!
网页调用Window.print()直接打印当前页面,但我想打印的时候控制打印纸张的宽度和高度?

有什么好的建议?
 
用控件。可以做到和桌面程序一样的打印控制和效果,
ETEtCell.ocx 就可以,在网上找找有DEMO
 
改注册表
HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/PageSetup/
相应的值
 
谢谢lookee

不过好像只能改页面设置,不能自定义纸张大小
 
to sing_cee:
谢谢,由于时间紧迫,不可能重写打印模块
所以希望能有其他办法
最好能设置打印机默认的纸张大小
 
顺便问一句,打印中的SetForm函数如何才能工作??

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1862502
 
那你就不如调用IE的现成的窗口
WebBrowser.ExecWB(8,1)
 
1、用CSS2在IE里面可以实现套打,不需要插件,不过需要在用户手册中说明如何进行手工
配置页面设置;
2、用MICROSOFT的IE6打印扩展接口,可以配置IE的打印界面,去MSDN用BrochureMachine
关键字搜索,不过目前MICROSOFT对这个支持还不成熟,而且要花时间研究一下:)
3、第三方控件。
 
在<body></body>之间插入
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WB width=0></OBJECT>
然后调用
WB.ExecWB(7,1)
即会出现打印预览,此时用户即可调整打印纸张的宽度和高度了。
 
谢谢大家
现在是想要程序设置打印纸张大小,而不需要用户设定,因为用户很多而且水平偏低

我的想法是写ActiveX在打印前设置系统的默认打印纸张为我的大小,然后调用
window.print();直接打印页面即可,完成后再把系统默认打印设置回来
 
http://support.microsoft.com/default.aspx?scid=kb;EN-US;236777
注意其中说道:
There might be a need to change the print settings of Internet Explorer or the WebBrowser control programmatically. [red]The only settings that can be changed are page margins, and header and footer information. There is no supported way to change other settings like page orientation or printer.[/red]
[:(]
 
to lookee:

这个问题我已经注意到了,所以决定写ActiveX

换个方式说明现在的问题可能更清楚:
如何用Delphi写程序更改打印机默认的纸张大小,当然前提是打印机支持自定义纸张
 
这个应该可以实现吧
前面有贴子
http://www.delphibbs.com/delphibbs/dispq.asp?LID=262291
 
十分感谢lookee

这个帖子我看了,所说的方法只能对当前应用程序产生效果
也就是说,别的应用程序的默认打印仍旧是原来的

这里有篇介绍:
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;282474
不过它没有SetForm和GetForm的代码,这个正是关键所在
 
后退
顶部