1、 配置好IIS
2、 下载PrintControl.cab(下载地址:http://support.businessobjects.com/CRforVS2005/PrintControl.cab)
3、 在IIS默认根目录下(C:/Inetpub/wwwroot)建一个文件夹.如:TEMP,把"PrintControl.cab"放到"TEMP"里边去(这一步的目的为了防止在不能上网的机子在打印时会出现一闪而过的现象,而导致打印失败)
4、 然后到"C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/ASP.NETClientFiles/CrystalReportWebFormViewer4/html"这个地址里找到一个叫"crystalprinthost.html"文件(如果没有找到这个文件夹,说明机子可能是只安装了.net framework,没有安装水晶报表安装包,这时可以从其它拷贝一份)
5、 用记事本打开这个文件,找到"objectTag += window.dialogArguments.codebase;"然后将它注释掉.,改为objectTag += "http://本机IP地址/temp/PrintControl.cab";最后保存.
6、 按照第4步和第5步,修改” C:/Inetpub/wwwroot/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html”目录下的” crystalprinthost.html”
注意事项:
Ø 直接运行http://本机IP地址/temp/PrintControl.cab时,有可能出现如下错误:
您不具备查看该目录或页面的权限,因为访问控制列表 (ACL) 对 Web 服务器上的该资源进行了配置。打印也会失败,这是需要相应的设置,直至可以访问.
Ø 如果以ActiveX方式打印报表,只能使用IE浏览器,其它的都不支持
Ø 在使用IE浏览器时,要进行对应的设置,第一个是弹出窗口不能被禁止,设置如下:打开IE浏览器”Internate选项”中的”隐私”选项卡,保证”打开弹出窗口阻止程序”没有选中,如图: ;第二个在”安全”选项卡中,打开”自定义级别…”按钮,ActiveX控件要处于”启用”选项,如下图所示:
Ø 如果按照上面的操作仍旧不能打印,试着修改” C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/ASP.NETClientFiles/CrystalReportWebFormViewer4/html”和” C:/Inetpub/wwwroot/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/html”下的” crystalprinthost.html”,把” var objectTag = "<OBJECT ID=/"CrystalPrintControl/" CLASSID=/"CLSID:83A3D1E4-ADC6-434D-9B61-B8CBA6183441/" CODEBASE=/"";”修改成” var objectTag = "<OBJECT ID=/"CrystalPrintControl/" CLASSID=/"CLSID:BAEE131D-290A-4541-A50A-8936F159563A/" CODEBASE=/"";”(如果printControl是2005版本,对应的classid:BAEE131D-290A-4541-A50A-8936F159563A;2008版本的是83A3D1E4-ADC6-434D-9B61-B8CBA6183441)
之后,就可以进行,测试成功时,会先提示安装ActiveX控件,如下图:,点击”安装”按钮后,弹出如下窗口:,打印成功。