Crystal报告 - 内存不足异常

时间:2009-09-04 10:02:37

标签: .net crystal-reports

我们开发了一套水晶报告(不是我的想法),用于重新创建我们已发送的一些示例PDF表单。我们为报告中的每个页面导入了背景图像(取自原始PDF),然后我们将这些数据字段拖到了这些上面。

现在,尽管我们用于背景的原始图像相对较小,但rpt文件非常大(约50 MB)。这有点令人讨厌,但是现在当我们部署到服务器时,我们发现在尝试运行报告时我们会出现间歇性的内存不足错误。

有任何想法:

  1. 更好的方法。

  2. 此报告文件太大的原因(以及如何减少它)。

  3. 了解我们为什么会出现内存错误。

2 个答案:

答案 0 :(得分:0)

最有可能的是,这些错误来自图像本身。虽然您可以将它们作为小型JPG文件传递给报表,但报表本身可能会将它们转换为位图,这可能非常大。

第一步:重新创建没有任何图像的报告,以确保图像是否会导致巨大的尺寸。如果尺寸下降到例如5 MB,您肯定知道图像会导致问题,需要找到解决方法。

要解决此问题,您需要找到一种方法来告诉报告使用JPG压缩存储这些图像以再次减小大小。不过,我不知道Crystal Reports和/或您的项目是否可以实现这一点。

(在最坏的情况下,您的报告不仅将这些图像存储为位图,而且还会将它们拉伸到覆盖整个页面的大小,从而使它们更大!)

答案 1 :(得分:0)

哇,讨厌。您是否能够将这些报告拆分为每个报告只有一个图像?

如果没有,那么您将不得不通过代码将图像加载到报告中。在报告中保存图像本身似乎总是大量膨胀Crystal Report(就像它在内部将它们存储为TIFF或其他东西),但是有可能通过使用较小图像的代码来实现这一点。 此代码示例可能有所帮助:

https://www.sdn.sap.com/irj/boc/index?rid=/library/uuid/f02cd85d-cf66-2b10-878d-9337242838f0