gpt4 book ai didi

image - RDLC 报告比例图像对齐

转载 作者:行者123 更新时间:2023-12-01 15:14:01 25 4
gpt4 key购买 nike

我正在处理 RDLC 报告,我使用 DB 图像,并将其大小类型设置为比例,如果图像的尺寸与边框不完全一样,则边框不适合..没关系,但是图像将根据边框左上对齐,而我需要它居中(在 PDF 上),而在 IE 上它居中..,这里是图像示例,请我需要帮助..

这是我已经拥有的 http://up.g4z4.com/uploads/f1fdee3542.jpg

这是想要的 http://up.g4z4.com/uploads/a3d2ca5b8e.jpg

我曾经读到过 RDLC 报告中的图像来源或注册点在左上角,这就是为什么它会这样显示的原因..但是写这篇文章的人说他不确定..这可能吗?还是与无法更改的默认对齐方式有关?

谢谢,

最佳答案

对于每张图片,我们都可以找出其纵横比,宽度/高度或高度/宽度。假设您的单元格已知宽度和高度,您可以确定它是否会太窄或太短。此外,您可以使用以下公式计算其新的宽度和高度:

新宽度 = 单元格高度*旧宽度/旧高度

newHeight = cellwidth*oldheight/oldwidth

CellWidth - NewWidth = 2x PaddingLeft

CellHeight - NewHeight = 2x PaddingTop

所以您现在需要做的就是将结果除以 2,然后将其转换为整数。

我在主报告的 SubReportProcessing 事件中为数据库中的每个图像(我实际上是从 sqlite 数据库中提取这些图像)实现了以下 getter,我只是将所有图像添加为数据源。

public class ImageModel
{
public int ImgId { get; set; }
public byte[] Blob { get; set; }

public string PaddingLeft
{
get
{
var img = byteArrayToImage(Blob);
//cell width and height must be specified in points
//(cellwidth - cellheight * image aspect ratio) / 2
var result = (int)((256.0f - 256.0f * ((float)img.Width / (float)img.Height)) / (float)2) + "pt";
return result;
}
}
public string PaddingTop
{
get
{
var img = byteArrayToImage(Blob);
var result = (int)((256.0f - 256.0f * ((float)img.Height / (float)img.Width)) / (float)2) + "pt";
return result;

}
}

在该操作之后,我现在可以在图像属性下设置填充值,如下所示:

=Fields!PaddingLeft.Value
=Fields!PaddingTop.Value

希望对您有所帮助!

干杯;)

关于image - RDLC 报告比例图像对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com