1

我有一个面向 .net 4 的 C# 应用程序。该应用程序包括一些可以打印或预览的 Crystal Reports 报表。我的代码使用:

CrystalDecisions.CrystalReports.Engine.ReportClass

有一个使用 Crystal 2008 创建的报告,它从文件系统中动态获取一个或多个图像。当这些图像很大时,我遇到了问题。

例如:

  • 该报告试图包含 4 张图片(每张图片都在自己的页面上)
  • 源图像 (.jpgs) 每个为 3.5 兆

当我打印或预览该报告时,通常会出现前 2 张图像,但随后不会再出现。然后,如果我再试一次,我通常不会看到任何图像并且经常得到这个消息框(预览时):

Crystal Reports Windows 窗体查看器

内存满了。

内存不足,无法运行。

那时我的应用程序正在使用大约 600 兆。

如果我将这些大图像换成较小的图像(每个大约半兆),我就可以毫无问题地查看报告。

如果我在 Crystal Reports 2008 编辑器中预览同一个带有大图像的报表,它的效果非常好。

那么在使用 CrystalDecisions.CrystalReports.Engine.ReportClass 时,我可以将多少兆图像数据放入报告中是否有限制?还是我做错了什么?

4

1 回答 1

2

对于包含 3 张以上图像的报告也有同样的问题。通过更改 RPT 文件中的设置来解决。打开您的 Crystal 模板,进入文件 -> 报告选项,然后取消标记“保留原始图像颜色深度”。这将显示质量降低的图片,但绝不会因为“内存已满”而导致报告失败。至少,我的情况是这样。

于 2019-06-14T08:22:15.447 回答