我在屏幕上正确渲染图像时遇到了完全相同的问题,但是当我将报告导出为 PDF 时,它看起来就像问题中的问题一样。这是我解决它的方法。
问题
第一个线索是我在 MSDN 上看到的这篇文章。似乎无论原始图像密度如何,SSRS 中的 PDF 渲染器都会将所有图像的大小调整为 96 DPI。如果图像的原始大小大于页面(或容器)的大小,那么您将遇到此问题。
解决方案
解决方案是调整源图像的大小,使其适合您的页面。这需要根据您的页面大小和边距设置进行一些计算。
就我而言,我使用的是 A4 纸尺寸,即 21 厘米 x 29.7 厘米。但是,我的左边距为 1.5 厘米,右边距为 0.5 厘米,总内宽为 19 厘米。我允许额外的 0.5 厘米作为误差范围,因此我使用 18.5 厘米的内部宽度。
21 cm - 1.5 cm - 0.5 cm - 0.5 cm = 18.5 cm
如前所述,PDF 渲染器生成的分辨率为 96 DPI(每英寸点数)。对于我们这些不在美国或利比里亚共和国的人来说,这是 37.79 DPC(每厘米点数)。所以,要得到我们的宽度:
18.5 cm * 37.79 dpc = 699 pixels
您的结果可能会有所不同,具体取决于 (1) 您使用的纸张尺寸,以及 (2) 左右边距。
由于页面高于宽度,我们只需要在保持图像比例的同时调整宽度。如果您使用的纸张尺寸比它的高宽,您可以使用长度。
因此,现在在 Paint(或您选择的图像编辑器)中打开源图像,并按比例将图像大小调整为所需的宽度(或长度)(以像素为单位),保存它,将其导入到您的容器中,并根据视觉调整图像大小容器。它在屏幕上应该看起来一样,现在可以正确呈现为 PDF。