c#AR报告与照片在保存为PDF时会分散注意力

时间:2017-05-05 01:54:31

标签: c# image pdf activereports

带有照片的AR报告,但在保存为PDF时会失真。

我有一份显示所有学生照片的报告。在Active Reports中作为报表预览之前一切正常,直到保存为止。保存的文件将成为pdf文件。 pdf将照片显示为扭曲和非均匀尺寸。我可以说它没有获得原始文件大小或尺寸(宽度和高度),因为当原始尺寸更大或更小时,有些显示所需的尺寸,所以我不确定它为什么是选择性的。有些是以所需的尺寸显示,有些则不是。

我尝试在将图像放入表格之前对其进行缩放,这样可以很好地显示图像并且均匀。但是如果保存到pdf中它会变得多么扭曲?知道如何抑制缩放吗?感谢

public static Image ScaleImage(Image image, int maxWidth, int maxHeight)
        {
            var ratioX = (double)maxWidth / image.Width;
            var ratioY = (double)maxHeight / image.Height;
            var ratio = Math.Min(ratioX, ratioY);

            var newWidth = (int)(image.Width * ratio);
            var newHeight = (int)(image.Height * ratio);

            var newImage = new Bitmap(newWidth, newHeight);

            using (var graphics = Graphics.FromImage(newImage))
                graphics.DrawImage(image, 0, 0, newWidth, newHeight);

            return newImage;
        }

我在下面的函数liek代码中使用它

using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image))
            {
                image = ScaleImage(image, 100, 100);
                g.Clear(System.Drawing.Color.White);
                System.Drawing.Pen pen = new System.Drawing.Pen(System.Drawing.Color.Black, 3);
                pen.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
                g.DrawRectangle(pen, 0, 0, image.Width - 5, image.Height - 5);
                g.DrawString("   No\r\nPhoto", new System.Drawing.Font("Arial", 12), System.Drawing.Brushes.Black, new System.Drawing.PointF(20, 30));
            }

1 个答案:

答案 0 :(得分:0)

我能够弄清楚。我只是在图像之前为每一列放置一个容器。因此图像将位于容器的顶部。将图像的属性大小设置为FitProportional。请注意,将大小设置为" Fitproportional"已经使尺寸变得均匀,但是它会偏斜,因为它将遵循很可能是矩形的柱尺寸,因此需要一个容器。