就不得不调整WEB页面页边距以及去掉页眉页脚,上网查了很多资料发现IE没有自带这些设置打印机的功能,无法使用纯javascript设置。
前几天上网查了资料,可以通过修改注册表达到去除页眉页脚的效果,可是试了一下后发现IE不允许直接修改注册表。后面又想到了两种解决办法:1)营业员通过IE的“页面设置”功能再结合我们提供的设置参数设置打印效果;2)我们提供一个批处理文件,其中已经设置好了必要的参数,营业员只需运行一次该批处理文件即可。
我选则了第二种方法,以前没写过批处理文件,但听说很容易,通过查资料看了一些写批处理文件的语法,但是这次用到的语法很少,写了一个简单的文件,主要设置页面的页边距以及去掉页眉页脚。具体代码如下:
@echo off
echo 正在修改页面设置...
reg add "HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerPageSetup" /v footer /t REG_SZ /d "" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerPageSetup" /v header /t REG_SZ /d "" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerPageSetup" /v margin_bottom /t REG_SZ /d "0.75" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerPageSetup" /v margin_left /t REG_SZ /d "0.75" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerPageSetup" /v margin_right /t REG_SZ /d "0.75" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerPageSetup" /v margin_top /t REG_SZ /d "0.1" /f
pause
echo on
虽然代码很简单,但是花了一个上午的时间,我写完这些代码后运行后IE中的“页面设置”和注册表中对应的值没有任何变化,开始我没使用pause,运行完后没有停止,所以也不知道出了什么错误,通过上网查资料发现了pause语句,于是把它用上了,这是才发现提示“reg不是内部或外部命令 也不是可运行的程序或批处理文件”,上网查了一些资料都没解决,而且发现很少人问这种问题,后面我发现在命令行中输入任何命令都提示“××不是内部或外部命令”,我根据这条线索上网搜索找到了解决办法,原因是不知什么时候环境变量被修改了,把环境变量中的path路径改成“%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem”就可以了。
注册表中设置的边距单位不是毫米,我现在还不知道是什么,我设置注册表中的值为0.75时,IE页面的值为19.05mm。