请教:web页面水晶报表不用预览,直接打印该如何实现

inforum 2009-01-10 02:52:35
系统有几百份报告,每份有若干页,客户要求全选,点一下打印就能到打印机那取一堆报告。
参照水晶报表samples写的代码如下:
protected void PrintReport_Click(object sender, ImageClickEventArgs e)
{
ReportDocument writReport = new ReportDocument();
// ....
// 此处省略代码几十行
// ....
writReport.SetDataSource(...);
writReport.PrintOptions.PrinterName = @"\\192.168.0.168\HP6L";
writReport.PrintOptions.PrinterDuplex = CrystalDecisions.Shared.PrinterDuplex.Horizontal;
writReport.PrintToPrinter(1, true, 0, 0);
}
点了按钮,打印机没有任务。
将writReport.PrintOptions.PrinterName 赋值为IIS上的打印机有时候有打印任务,有时候没有,大都时候没有。
问题的关键是页面不能访问客户端的打印机。有朋友叫我用ActiveX实现,但我不死心啊。
回答请注意:1.是Web打印 2.不用跟我说转pdf等导出方法,你给客户找麻烦显然行不通
...全文
301 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinahue 2011-12-22
  • 打赏
  • 举报
回复
Fastreport 不支持 C# 可惜啊!
inforum 2009-01-18
  • 打赏
  • 举报
回复
呵呵
经过一周的尝试,决定:放弃水晶报表,改用Fastreport了!
现在结贴!
spider80529 2009-01-16
  • 打赏
  • 举报
回复
学习
zzxap 2009-01-16
  • 打赏
  • 举报
回复
CrystalReportViewer 设置 PrintMode="ActiveX"就能直接打印了
tangserver 2009-01-12
  • 打赏
  • 举报
回复
学习了
阿泰 2009-01-10
  • 打赏
  • 举报
回复
有时候有有时候没有的话,跟打印机一般没关系。
不过保险起见,做一个批量发送打印任务的测试程序测试一下打印机的响应也是可以的

WEB打印不预览直接调用打印机用Activex是实现不了的(主要是会弹出选择打印机选择框,不能一键完成)
所以就要求来说,局域网上用服务器端打印是唯一的解决方法

另外我想问一下这个问题,这个代码里因为涉及到一次按键,发送多个打印任务

假设能打印的时候,打印的是第一个任务还是最后一个任务还是其中的某个呢?
如果可以的话,在两个任务之间加一个服务器端的延时是否可行?(这个我没实际做过,不知道有没有方法)

inforum 2009-01-10
  • 打赏
  • 举报
回复
to parss: 你自己测试通过了再来回答好不好
parss 2009-01-10
  • 打赏
  • 举报
回复
打印机选择错误或设置错误吧

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧