not sure if this will help you (didn't test, so it might not work):HOWTO: Change Print Settings for Internet Explorer and WebBrowser Control Programmatically http://support.microsoft.com/default.aspx?id=236777
思归兄: 以上文章中说: “可能需要以编程方式更改 Internet Explorer 或 WebBrowser 控件的打印设置。可以更改的设置仅包括页边距、页眉和页脚信息。对于更改其他设置,如页面方向或打印机等,尚没有受支持的方法。”我想对于更改其他设置,如页面方向或打印机等,是不是可以通过获得当前IE窗口的句柄然后再进行调整能,就像ScriptX一样它是使用的什么方法呢?
try to combine the above two methods
<!--控制打印时控制页面底部的路径和顶端的页码编号begin--> <SCRIPT LANGUAGE="VBScript"> dim RegWsh dim hkey_root,hkey_path,hkey_key1,hkey_key2,Read_Data1,Read_Data2 hkey_root="HKEY_CURRENT_USER" hkey_path="\Software\Microsoft\Internet Explorer\PageSetup" '//设置网页打印的页眉页脚为空 Sub PageSetup_null on error resume next Set RegWsh = CreateObject("WScript.Shell") hkey_key1="\header" hkey_key2="\footer" Read_Data1=RegWsh.RegRead(hkey_root+hkey_path+hkey_key1) Read_Data2=RegWsh.RegRead(hkey_root+hkey_path+hkey_key2) if Read_Data1="" and Read_Data2="" then msgbox "页眉页脚目前设置为空,不必重新设置!" else RegWsh.RegWrite hkey_root+hkey_path+hkey_key1,"" RegWsh.RegWrite hkey_root+hkey_path+hkey_key2,"" msgbox "成功设置打印页眉页脚为空!" end if end Sub '//设置网页打印的页眉页脚为默认值 sub pagesetup_default on error resume next Set RegWsh = CreateObject("WScript.Shell") hkey_key1="\header" hkey_key2="\footer" Read_Data1=RegWsh.RegRead(hkey_root+hkey_path+hkey_key1) Read_Data2=RegWsh.RegRead(hkey_root+hkey_path+hkey_key2) if Read_Data1="&w&b页码,&p/&P" and Read_Data2="&u&b&d" then msgbox "页眉页脚目前设置为默认值,不必重新设置!" else RegWsh.RegWrite hkey_root+hkey_path+hkey_key1,"&w&b页码,&p/&P" RegWsh.RegWrite hkey_root+hkey_path+hkey_key2,"&u&b&d" msgbox "成功设置打印页眉页脚为默认值!" end if end sub </SCRIPT> <!--控制打印时控制页面底部的路径和顶端的页码编号end--> <input name="button" type="button" onclick=PageSetup_null value="清空页眉页脚" class="buttoninput"> <input name="button" type="button" onclick=PageSetup_default value="恢复默认设置" class="buttoninput">
控制"纵打"、“横打”和“页面的边距” (1)<script defer> function SetPrintSettings() { // -- advanced features factory.printing.SetMarginMeasure(2) // measure margins in inches factory.SetPageRange(false, 1, 3) // need pages from 1 to 3 factory.printing.printer = "HP DeskJet 870C" factory.printing.copies = 2 factory.printing.collate = true factory.printing.paperSize = "A4" factory.printing.paperSource = "Manual feed" // -- basic features factory.printing.header = "This is MeadCo" factory.printing.footer = "Advanced Printing by ScriptX" factory.printing.portrait = false factory.printing.leftMargin = 1.0 factory.printing.topMargin = 1.0 factory.printing.rightMargin = 1.0 factory.printing.bottomMargin = 1.0 } </script> (2) <script language="javascript"> function printsetup(){ // 打印页面设置 wb.execwb(8,1); } function printpreview(){ // 打印页面预览
Printing and Print Spooler Functions
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_7mgj.asp
用API修改了打印机的默认参数后,IE当前窗口的设置是不变的,必须关闭后重新打开才能是刚才设置的参数?。。
http://support.microsoft.com/default.aspx?id=236777
以上文章中说:
“可能需要以编程方式更改 Internet Explorer 或 WebBrowser 控件的打印设置。可以更改的设置仅包括页边距、页眉和页脚信息。对于更改其他设置,如页面方向或打印机等,尚没有受支持的方法。”我想对于更改其他设置,如页面方向或打印机等,是不是可以通过获得当前IE窗口的句柄然后再进行调整能,就像ScriptX一样它是使用的什么方法呢?
<SCRIPT LANGUAGE="VBScript">
dim RegWsh
dim hkey_root,hkey_path,hkey_key1,hkey_key2,Read_Data1,Read_Data2
hkey_root="HKEY_CURRENT_USER"
hkey_path="\Software\Microsoft\Internet Explorer\PageSetup"
'//设置网页打印的页眉页脚为空
Sub PageSetup_null
on error resume next
Set RegWsh = CreateObject("WScript.Shell")
hkey_key1="\header"
hkey_key2="\footer"
Read_Data1=RegWsh.RegRead(hkey_root+hkey_path+hkey_key1)
Read_Data2=RegWsh.RegRead(hkey_root+hkey_path+hkey_key2)
if Read_Data1="" and Read_Data2="" then
msgbox "页眉页脚目前设置为空,不必重新设置!"
else
RegWsh.RegWrite hkey_root+hkey_path+hkey_key1,""
RegWsh.RegWrite hkey_root+hkey_path+hkey_key2,""
msgbox "成功设置打印页眉页脚为空!"
end if
end Sub
'//设置网页打印的页眉页脚为默认值
sub pagesetup_default
on error resume next
Set RegWsh = CreateObject("WScript.Shell")
hkey_key1="\header"
hkey_key2="\footer"
Read_Data1=RegWsh.RegRead(hkey_root+hkey_path+hkey_key1)
Read_Data2=RegWsh.RegRead(hkey_root+hkey_path+hkey_key2)
if Read_Data1="&w&b页码,&p/&P" and Read_Data2="&u&b&d" then
msgbox "页眉页脚目前设置为默认值,不必重新设置!"
else
RegWsh.RegWrite hkey_root+hkey_path+hkey_key1,"&w&b页码,&p/&P"
RegWsh.RegWrite hkey_root+hkey_path+hkey_key2,"&u&b&d"
msgbox "成功设置打印页眉页脚为默认值!"
end if
end sub
</SCRIPT>
<!--控制打印时控制页面底部的路径和顶端的页码编号end-->
<input name="button" type="button" onclick=PageSetup_null value="清空页眉页脚" class="buttoninput">
<input name="button" type="button" onclick=PageSetup_default value="恢复默认设置" class="buttoninput">
(1)<script defer>
function SetPrintSettings() {
// -- advanced features
factory.printing.SetMarginMeasure(2) // measure margins in inches
factory.SetPageRange(false, 1, 3) // need pages from 1 to 3
factory.printing.printer = "HP DeskJet 870C"
factory.printing.copies = 2
factory.printing.collate = true
factory.printing.paperSize = "A4"
factory.printing.paperSource = "Manual feed" // -- basic features
factory.printing.header = "This is MeadCo"
factory.printing.footer = "Advanced Printing by ScriptX"
factory.printing.portrait = false
factory.printing.leftMargin = 1.0
factory.printing.topMargin = 1.0
factory.printing.rightMargin = 1.0
factory.printing.bottomMargin = 1.0
}
</script> (2)
<script language="javascript">
function printsetup(){
// 打印页面设置
wb.execwb(8,1);
}
function printpreview(){
// 打印页面预览
wb.execwb(7,1);
} function printit()
{
if (confirm('确定打印吗?')) {
wb.execwb(6,6)
}
}
</script>
</head>
<body>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>
<input type=button name=button_print value="打印" onclick="javascript:printit()">
<input type=button name=button_setup value="打印页面设置" onclick="javascript:printsetup();">
<input type=button name=button_show value="打印预览" onclick="javascript:printpreview();">
<input type=button name=button_fh value="关闭" onclick="javascript:window.close();"> ------------------------------------------------
关于这个组件还有其他的用法,列举如下:
WebBrowser.ExecWB(1,1) 打开
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示