如何在客户端打印机上从 ASP.NET CrystalReport 打印

How to Print from ASP.NET CrystalReport on client side printer(如何在客户端打印机上从 ASP.NET CrystalReport 打印)
本文介绍了如何在客户端打印机上从 ASP.NET CrystalReport 打印的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在客户端打印机上从 CrystalReport (ASP.NET) 打印报表.

How do I print report from CrystalReport (ASP.NET) on a client side printer.

推荐答案

你有两个选择:

  1. 将 PrintMode 设置为 ActiveX 或 PDF,并让 Crystal 报表查看器工具栏来处理它.
  2. 在 iFrame 中创建 pdf,并使用 JavaScript 触发打印命令.

为了简化用户必须在每个客户端上安装的内容,我使用了隐藏的 pdf 选项和一个单独的按钮来打印到客户端.

To simplify what the users had to install on each client I went with the hidden pdf option and a separate button to print to client.

在 aspx 页面上,我使用 1px x 1px 的 pdf 嵌入对象填充了一个 asp 文字,因此它对用户不可见.然后在页面加载时调用 printToPrinter 方法.

On the aspx page I have an asp literal that I populate with the pdf embeded object at 1px x 1px so it isn't visible to the user. Then on pageload call the printToPrinter method.

// On server side
// Export to PDF
Guid imageGuid = Guid.NewGuid();
string _pdfName = String.Format(@"{0}{1}{2}.pdf", _pdfPath, _reportName, imageGuid);
// expport to unique filename
// ...
// Display the pdf object 
_sb.AppendFormat("<object ID="pdfObject" type="application/pdf" data="{0}" src="{0}" style="width: {1}; height: {2}; ", _pdf2Name, _width, _height);
_sb.AppendLine("z-index:1; display: block; border: 1px solid #cccccc; top: 0; left: 0; position: absolute;-+ ">");
_sb.Append("</object>");
pdfLiteral.Text = _sb.ToString();
pdfLiteral.Visible = true;

// javascript
// on document load call the printWithDialog function
 var code = function(){
 try
     {
        var pdf = $get('pdfObject');
        if (pdf == null)
            return;
        try {
            pdf.printWithDialog();
        }
        catch (err) {
            alert('Please Install Adobe Acrobat reader to use this feature');
        } 
     }
     catch(err)
     {
     }
  };
window.setTimeout(code, 1000);

这篇关于如何在客户端打印机上从 ASP.NET CrystalReport 打印的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
how do i pass parameters to aspnet reportviewer(如何将参数传递给aspnet report查看器)
Bind multiple parameters from route and body to a model in ASP.NET Core(在ASP.NET Core中将路由和主体中的多个参数绑定到一个模型)
Custom model binding in AspNet Core WebApi?(AspNet Core WebApi中的自定义模型绑定?)
How to minify in .net core mvc view?(如何在.Net核心MVC视图中缩小?)