Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将超过1200页的报告导出为PDF_C#_Asp.net_Pdf_Crystal Reports_Export To Pdf - Fatal编程技术网

C# 将超过1200页的报告导出为PDF

C# 将超过1200页的报告导出为PDF,c#,asp.net,pdf,crystal-reports,export-to-pdf,C#,Asp.net,Pdf,Crystal Reports,Export To Pdf,我的报告包含1200多页,我想将其导出为PDF格式。我正在使用ASP.NET 目前,导出需要2个多小时。我用的是拉法。如何优化此过程 ReportDocument rpt = new ReportDocument(); protected void Page_Load(object sender, EventArgs e) { ReportsTest dsFams = new ReportsTest(); string condition = Session["cond"].To

我的报告包含1200多页,我想将其导出为PDF格式。我正在使用ASP.NET

目前,导出需要2个多小时。我用的是拉法。如何优化此过程

ReportDocument rpt = new ReportDocument();
protected void Page_Load(object sender, EventArgs e)
{
    ReportsTest dsFams = new ReportsTest();
    string condition = Session["cond"].ToString();
    if (!IsPostBack)
    {
        DataSet ds = new DataSet();
        tblFA_ItemSetupTableAdapter tblItemSetup = new tblFA_ItemSetupTableAdapter();

        if (condition.Contains("{tblFA_ItemSetup.ParentCatID}"))
        {
            tblItemSetup.FillByParentCatID(dsFams.tblFA_ItemSetup, Session["holdbranch"].ToString(), Session["ParentCat"].ToString());
            ds.Tables.Add(tblItemSetup.GetDataByParentCatID(Session["holdbranch"].ToString(), Session["ParentCat"].ToString()).Copy());
        }
        else
        {
            tblItemSetup.Fill(dsFams.tblFA_ItemSetup);
            ds.Tables.Add(tblItemSetup.GetData());
        }

        Cache["dtImages"] = ds;
    }
    rpt.Load(Server.MapPath("~/rptFA_ItemTag.rpt"));

    rpt.SetDataSource((DataSet)Cache["dtImages"]);
    CrystalReportViewer1.EnableDatabaseLogonPrompt = false;
    CrystalReportViewer1.ReportSource = rpt;
}
这是按钮点击代码:

rpt.Load(Server.MapPath("~/rptFA_ItemTag.rpt"));
rpt.SetDataSource((DataSet)Cache["dtImages"]);
System.IO.Stream oStream;
byte[] byteArray = null;
oStream = rpt.ExportToStream(ExportFormatType.PortableDocFormat);
byteArray = new byte[oStream.Length];
oStream.Read(byteArray, 0, Convert.ToInt32(oStream.Length - 1));
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.BinaryWrite(byteArray);
Response.Flush();
Response.Close();

如果只想导出为PDF格式,则不需要报表查看器。 可以删除这两行并保存一些渲染: CrystalReportViewer1.EnableDatabaseLogonCompt=false;
CrystalReportViewer1.ReportSource=rpt

你能提供一些代码吗。