【发布时间】:2011-04-25 18:45:39
【问题描述】:
我从我的服务器获取一个表示 TIFF 文件的字节数组,将其转换为 XImage,然后将其添加到新的 pdf 文档中。有问题的图像是 1280x800(这是一个屏幕截图),并且正在被拉伸和加长以适应标准 pdf 页面的高度和宽度。我该如何解决这个问题?
【问题讨论】:
-
您找到解决方案了吗? abcPDF 也在拉伸我的图像,即使我先设置了媒体框。
我从我的服务器获取一个表示 TIFF 文件的字节数组,将其转换为 XImage,然后将其添加到新的 pdf 文档中。有问题的图像是 1280x800(这是一个屏幕截图),并且正在被拉伸和加长以适应标准 pdf 页面的高度和宽度。我该如何解决这个问题?
【问题讨论】:
试试这个:
doc.MediaBox.String = img.BoundingBox.String;
doc.Rect.String = doc.MediaBox.String;
doc is Doc 和 img is XImage 的位置
【讨论】:
您遇到的特殊问题是由于将打印机设置为纵向。
作为 PDF 对象,您可能需要模拟一个模仿您所追求的图像大小的页面。
您最好将原始文档发送到图像并添加 TIFF 文件。
【讨论】:
取决于 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 应与原始图像成比例。
【讨论】: