VS.NET2005 CrystalReport PrintMode

VS.NET2005 CrystalReport的打印模式分为Pdf和ActiveX两种,打印模式的设置在CrystalReportViewer.PrintMode 属性中。

1、PDF模式的打印需在服务端及客户端安装pdf格式阅读器。

2、ActiveX模式:ActiveX 打印控件允许使用者将报表直接打印至本机打印机。使用ActiiveX模式需要在Web.config的<configuration>节中添加如下配置信息:

<configSections>
    <sectionGroup name="businessObjects">
      <sectionGroup name="crystalReports">
        <section name="printControl" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
      </sectionGroup>
    </sectionGroup>
</configSections>
<businessObjects>
    <crystalReports>
      <printControl>
        <add key="url" value="http://localhost:5760/web/PrintControl.cab" />
      </printControl>
    </crystalReports>
</businessObjects>

PrintControl.cab 档案可以从 Business Objects 技术支持网站下载取得,并可以将 cab 档案放在 本地Web 服务器虚拟目录中,以供 URL 存取之用。

PrintControl.cab 档案的下载地址:http://support.businessobjects.com/CRforVS2005/PrintControl.cab

可以将PrintControl.cab 档案显示在页面上,在Web页面Html中加入如下代码:

<object id="CrystalPrintControl" classid="CLSID:BAEE131D-290A-4541-A50A-8936F159563A" codebase="http://127.0.0.1/rpt/PrintControl.cab" #Version="10,2,0,1078" viewastext></object>

#Version是版本号,如果你是其他的版本将版本号修改一下即可。

可以看到它是一个CrystalReport的一个打印控件。

把这个插件arview2.cab直接放在这个页面相同的文件夹里就是下面的写法

<object id="arv" codebase="arview2.cab #version=2.4.1.1283" width="100%" classid="clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE" viewastext style="height: 100%">
     <param name="_ExtentX" value="26141">
     <param name="_ExtentY" value="11959">
    </object>

 

下面转自csdn论坛

在服务器上装上
1、CRRedist2005_x86.msi
2、CRREdist2005_x86_chs.msi
3、CrystalReports10_NET_EmbeddedInstall.msi(序列号:A6860-0900000-U70005X)

注册表的PrintJobLimit:0,不然会有使用限制。

下载PrintControl.cab
建个.html
<html>
<object id= "CrystalPrintControl " classid= "CLSID:BAEE131D-290A-4541-A50A-8936F159563A " codebase= "http://192.168.0.1/PrintControl.cab " #Version= "10,2,0,1078 " viewastext> </object>
</html>

客户端第一次打印时调用一下,安装ActiveX控件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解你的意思了。你的建议是在这段代码中加入 try-catch 块,以处理可能出现的异常。那我可以为你提供一些示例代码,帮助你更好地实现这个功能。请注意,这里的代码仅供参考,你需要根据自己的具体需求进行修改和调整: ``` if ("displayMode".equals(mergeDocType) || "printMode".equals(mergeDocType)) { writeLog("wyh---mergeDocType" + mergeDocType + "-------mergeDocType"); int modeid = rs.getInt("printMergeMould"); writeLog("wyh----modeid" + modeid); if (modeid > 0) { Map<String, Object> params = new HashMap<String, Object>(); params.put("requestid", requestId); params.put("modeid", modeid); params.put("onlyHtml", 0); params.put("keepsign", 0); LOG.info("modeImageParams=" + params); writeLog("wyh---" + params); try { Map<String, String> modeImage = wfdocUtil.getFileId(params, user); LOG.info("modeImageResult=" + modeImage); writeLog("wyh---" + modeImage); int printImagefileid = Util.getIntValue(modeImage.get("pdf"), 0); if (printImagefileid > 0) { mergeDocList.add(Util.null2String(printImagefileid)); } } catch (Exception e) { // 处理异常情况 // 这里可以记录日志、发送邮件等操作 // 也可以选择忽略异常,不影响程序的正常运行 writeLog("wyh---modeImage获取异常:" + e.getMessage()); } } } ``` 在上面的代码中,我在获取 modeImage 的过程中加入了 try-catch 块,用来处理可能出现的异常。当代码运行出现异常时,会执行 catch 块中的代码,你可以在这里记录异常信息、发送邮件通知等操作,以便及时发现和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值