以编程方式调整报表中的图像大小

时间:2016-08-25 14:15:33

标签: c# image-processing crystal-reports

我的C#应用​​程序生成一个Crystal Report,其中包含许多具有不同大小,方向和宽高比的图像。为了使它们在报告中正确显示,我使用白色方形画布并将图像置于其中。这会浪费很多空间:

enter image description here

是否可以将报告中的每张图片调整为适当大小的C#?我已经找到了一种在这里调整图像大小的方法,但我不知道我是否可以从c#执行这些步骤,特别是当涉及到"计算并设置Width和Height为正确的缇数时。 "

我知道我在C#中的图像大小,但它可以传递给报告并在报告中实现吗?图像位于base64格式的xml文件中。

设计师视图: enter image description here

1 个答案:

答案 0 :(得分:1)

好的,我没有一个有效的解决方案,但是一个可能对你有帮助的想法(我希望它能够帮助你)

我以编程方式搜索了你想做的事情,但我找不到任何东西。除非您可以使用C#操作FieldObject,否则它不能在您的报告中使用。

所以,我会尝试引导你一些屏幕截图,但我是法国人,我的屏幕将是法语,很抱歉翻译不好!

您可以编写公式来更改子报表中BinaryImage的显示。我刚刚找到了一种方法来改变数据的宽度,而不是高度。

因此,假设我的图像存储在“ARTICLE”表中,并且列的名称为“ART_IMAGE”。我将我的数据放在详细信息部分并创建一个新公式,忽略创建的公式,您需要访问“格式化公式”:

enter image description here

在我的屏幕中,它被称为“Formules de mise en forme”。在左侧,您可以看到我的简单报告,在右侧的公式面板上,我点击了我的详细信息部分,我可以看到我唯一的字段。 现在,右键单击此字段并创建一个新的格式化公式:

enter image description here

显示弹出窗口,您需要选择英语中的类似内容“ 调整宽度“:

enter image description here

现在,您必须返回当前图像的新宽度,这是一种了解将当前宽度存储在数据库中的字段中的方法。 因此,如果在您的数据库中,您有一个图像字段,以及像image_width这样的字段。在我的例子中,我有一个字段名称ART_DIMENSION,我存储图像的宽度。 棘手的部分是这个公式接受缇而不是英寸或厘米。为您提供信息1英寸= 1440缇。 所以在我的例子中这里是公式:

enter image description here

因此,对于要显示的每个图像,我的图像宽度将是存储在“ART_DIMENSIONS”中的宽度(具有良好的转换:英寸到缇)

在报表设计中,使用这样的公式为图像动态设置宽度,您可以设置宽度非常小的部分和图像对象。在这种情况下,您的图像将逐个显示,因为将为每个要显示的图像编辑部分宽度。

我试着非常清楚,希望它会帮助你,如果你不明白的话,问我任何问题。

此致