asp.net c#crystal report导出到PDF内存已满

时间:2013-11-20 19:59:30

标签: c# asp.net pdf crystal-reports

我正在使用Crystal Reports和VS2010构建一个报告:ASP.NET / C#相当大(使用OLE对象的6页),所以我不确定这是否是这个问题的原因或解决方案,但我需要知道如何解决这个或替代方案。我以相同的方式使用OLE对象构建的所有其他报告仍然可以正常导出。

我使用的代码是:

protected void exportPDF_btn_Click(object sender, EventArgs e)
{
    ReportDocument repDoc = getReportDocument(); //regathers the report

    Response.Buffer = false;

    Response.ClearContent();
    Response.ClearHeaders();

    try
    {
        repDoc.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "filename");
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
        ex = null;
    }
    finally
    {
        Response.End();
    }
}

问题是我不断收到错误消息:

  

内存已满,无法导出报告,内存不足   操作

我尝试过的其他解决方案:

  • 重置IIS
  • 重新启动服务器
  • 按照建议安装CutePDF: Crystal Report 2008 - Memory Full
  • 将第3个参数从true更改为false,从而产生以下代码行:

    repDoc.ExportToHttpResponse(ExportFormatType.PortableDocFormat,Response,false,“filename”);

  • 使用ExportToDisk而不是ExportToHttpResponse,导致 这段代码:

    repDoc.ExportToDisk(ExportFormatType.PortableDocFormat,@“Z:\ KFauver \ test \ file.pdf”);

此报告是我需要完成的最后一项,以便最终能够进行beta测试。但是,我现在正式失去了如何将其导出为PDF(或其他任何内容)。任何帮助表示赞赏!无论是修复还是替代,都要试试吧。提前谢谢。

2 个答案:

答案 0 :(得分:0)

显然,在报表上有6个单词doc OLE对象的实例会导致它需要太多内存。我没有意识到这一点。我的修复是截取每个页面的屏幕截图并将图像粘贴到报告中。似乎工作得很好。

答案 1 :(得分:0)

两周前我遇到了这个问题,由于这个错误导致我的项目待定。尝试下面的任何动作后。 安装几台PDF打印机 更新我的Crystal报表版本 更改默认打印机和...

最后,通过检查水晶报告中的无打印机(优化屏幕显示)并保存报告,解决了我的问题。 现在它运作良好 谢谢