我从服务器获取一个表示TIFF文件的字节数组,将其转换为XImage,然后将其添加到新的pdf文档中。所涉及的图像为1280x800(是一张截图),被拉伸并加长以适应标准pdf页面的高度和宽度。我该如何解决这个问题?
试试这个:
doc.MediaBox.String = img.BoundingBox.String;
doc.Rect.String = doc.MediaBox.String;
其中 doc 是 Doc
,而 img 是 XImage
这取决于PDF页面的构建方式。您可能想要做的是确保您创建的PDF页面与您的图像具有相同的纵横比,而不是默认为信纸大小的页面。
由于您没有指定如何制作PDF页面,因此我无法给出具体帮助。但通常情况下,PDF页面的单位为1/72英寸。您可以按照以下方式计算正确的页面大小:
const kPdfPageUnitSize = 72f;
float GetPdfSize(int nPixels, float dotsPerInch) {
return (nPixels / dotsPerInch) * kPdfPageUnitSize;
}
// later
float pdfwidth = GetPdfSize(image.Width, image.Resolution.X); // or however you have this
float pdfheight = GetPdfSize(image.Height, image.Resolution.Y);
从我所看到的情况来看,图像缩放系数不正确。您应该将图像高度和图像宽度除以1.33(3)(即96f/72f)
默认情况下,PDF用户单位为1/72英寸,因此您的图像DPI应与原始图像成比例。