.net web水晶报表怎么一点打印输出pdf?请高手介绍水晶报表在web项目打印方法!

解决方案 »

  1.   

    crReportDocument.SetDataSource(Ds);

    ExportOptions crExportOptions; //导出选项

    DiskFileDestinationOptions crDiskFileDestinationOptions;

    String Fname;    //导出完整名称
    //String FileName = "print.pdf";
    String FileName = Session["departid"].ToString().Trim() +".pdf";

    String _SystemPath =Request.PhysicalApplicationPath +  @"ExportPath\";
    if(!System.IO.Directory.Exists(_SystemPath))
    System.IO.Directory.CreateDirectory(_SystemPath);
    Fname = _SystemPath + FileName; //导出完整名称
    crDiskFileDestinationOptions = new DiskFileDestinationOptions();
    crDiskFileDestinationOptions.DiskFileName = Fname; crExportOptions = crReportDocument.ExportOptions;

    crExportOptions.DestinationOptions = crDiskFileDestinationOptions;
    crExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
    crExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;

    crReportDocument.Export();
    OpenOrDownloadFile(FileName);
      

  2.   

    首先定义报表对象,然后用推的方式绑定数据源,OK后即打印
    Report.TZ rt=null;
    rt=new Report.TZ();
    OleDbDataAdapter OD=new OleDbDataAdapter(strsql,Con);DataSet ds=new DataSet();
    OD.Fill(ds,"Tab");
    int count=ds.Tables["Tab"].Rows.Count;
    rt.SetDataSource(ds.Tables["Tab"]);
    int rowcount=ds.Tables["Tab"].Rows.Count;
    int m=rowcount/26;
    int n=rowcount%26;
    int pagecount;
    if(n==0)
    pagecount=m;
    else
    pagecount=m+1;

    rt.PrintOptions.PrinterName=@System.Configuration.ConfigurationSettings.AppSettings ["A3PrintName"].ToString();
    rt.PrintToPrinter(1,false,1,pagecount);
      

  3.   

    这样似乎有些功能无法使用,例如打印设置等。
    我使用的方法是:
    使用pull方式;
    使用水晶报表9.2;
    使用cr自己的打印工具;
    导出为pdf;
    使用acrobat 打印;
      

  4.   

    注意:在上面的代码中,你得注意一下oRpt是"Strongly Typed"的报表文件。如果你需要使用"UnTyped"报表,你得使用ReportDocument对象,然后再调用报表文件。
      运行你的程序。 
      11) 运行你的程序
      将报表文件导出成为其它格式
      你能够将报表文件导出成为下列格式:
          1. PDF (Portable Document Format) 
          2. DOC (MS Word Document) 
          3. XLS (MS Excel Spreadsheet) 
          4. HTML (Hyper Text Markup Language – 3.2 or 4.0 compliant) 
          5. RTF (Rich Text Format) 
      使用Pull模式导出报表
      当导出使用Pull模式创建的文件时,水晶报表准确地打开所需要的数据,下面是执行导出功能的代码:
    C#代码: 
    VB.Net代码:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim myReport As CrystalReport1 = New CrystalReport1()
      '注意:这里我们建立一个strong-typed的水晶报表实例。
        Dim DiskOpts As CrystalDecisions.Shared.DiskFileDestinationOptions = New CrystalDecisions.Shared.DiskFileDestinationOptions()
        myReport.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
      ' 导出成为其它文件时也需要这个选项
      ' 如Microsoft Exchange, MAPI等. 
        myReport.ExportOptions.ExportFormatType = CrystalDecisions. [Shared].ExportFormatType.PortableDocFormat
      '这里我们导出成为.pdf格式文件,你也能选择上面的其它类型文件
        DiskOpts.DiskFileName = "c:\Output.pdf"
      '如果你不指定确切的目录,那么文件就会保存到[Windows]\System32目录中去了
        myReport.ExportOptions.DestinationOptions = DiskOpts
      '水晶报表文件不包含直接的FileName属性,因此你不能直接指定保存的文件名
      '所以你不得不使用DiskFileDestinationOptions对象,设置它的DiskFileName属性
      '为你想要的路径,最后将水晶报表的DestinationsOptions属性指定为上面的DiskFileDestinationOption
        myReport.Export()
      '上面的代码将完成导出工作。
    End Sub 
      

  5.   

    http://community.csdn.net/Expert/topic/3557/3557228.xml?temp=.0348627
      

  6.   


    设置客户端浏览器在本地打印所采用的方法,你可能设置成printmode=pdf了
    应该是printmode=ActiveX
      

  7.   

    用导出PDF的方式,打印报表,要求客户端也安装Adobe Acrobat,否则无法查看到报表