【问题标题】:Direct Print RDLC report on client PC in ASP.NET在 ASP.NET 中的客户端 PC 上直接打印 RDLC 报告
【发布时间】:2015-07-02 11:39:00
【问题描述】:

我在这里阅读了很多关于此的文章和答案,但没有什么可以解决我的问题。这就是为什么我再次问这个问题。 我在 Asp.net 中开发了一个发票应用程序。我无法直接在客户端 PC 上打印发票。它总是询问打印机预览,这会激怒客户。我已经成功开发了一个直接打印的代码,但它只在本地主机上执行。 请帮助我并建议我尽快做些什么。 在 Javascript 或 ASP.NET 或其他可以帮助我的东西中。

【问题讨论】:

  • 发票是什么格式的? PDF? HTML? DOCX?
  • 我正在从 MS SQL 数据生成 rdlc 报告
  • 是的,你确实说过,对不起,我不是 100% 熟悉 RDLC 客户端的工作原理
  • 哦。如果您可以指导我在 java 脚本或 asp.net 中可以直接在客户端的默认打印机上打印部分页面的任何概念

标签: javascript c# asp.net printing


【解决方案1】:

我们使用 SSRS 并在服务器上生成 pdf 格式的报告。将其发送给客户端,我们使用 mime-type:application/x-xyz-printpdf 发送它 - 您还必须设置 content-disposition: 使用 filename 我不记得是否 inline 或 attachment 值,这样浏览器就会正常运行,而不是简单地下载和保存文件,而是启动关联的程序

客户端有一个稍微修改过的 SumatraPDF 版本,它与注册表中的application/x-xyz-printpdf 相关联(仅限 Windows 客户端 - 在其他操作系统中可以执行此操作,但我们所有的客户端都运行 Windows,所以我们从不打扰)

这个修改后的 sumatraPDF 从不显示文档,它所做的只是显示一个打印对话框,其中包含先前为所选报告选择的打印机。就是这样,发票将默认使用一台打印机,其他报告默认使用另一台打印机,这样更方便(并模拟我们旧的非基于 Web 的应用程序)

我正在重写报告打印子系统,使用 PDFjs 和 blob 的大幅修改版本,但那是在早期开发中,所以我不能告诉你任何关于它的事情,除了它看起来会工作好吧,不需要外部程序。

【讨论】:

  • 谢谢。听起来不错,所以我会尝试实现它。我会告诉你结果
  • 最难的部分是对 sumatraPDF 的修改 - 但是,您可以设置注册表值,以便它使用正确的参数组合调用 sumatraPDF(或任何其他 pdf 程序)以立即打印 - 这是我的唯一原因修改后的 sumatraPDF 是为了让它记住每份报告的最后打印位置
  • 我需要在客户端 PC 上安装 Sumatra PDF 吗?
  • 不一定是 sumatraPDF - 我使用 sumatraPDF 因为它是开源的,我可以制作我需要的模组 - 但是,对于我当前的系统,必须安装一个应用程序来处理它 -新系统应该没有这种烦恼,并且可以跨浏览器/跨操作系统
猜你喜欢
  • 1970-01-01
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多