3

我从我的服务器获取一个表示 TIFF 文件的字节数组,将其转换为 XImage,然后将其添加到新的 pdf 文档中。有问题的图像是 1280x800(这是一个屏幕截图),并且正在被拉伸和加长以适应标准 pdf 页面的高度和宽度。我该如何解决?

http://i53.tinypic.com/24qq1ch.png

4

4 回答 4

1

尝试这个:

    doc.MediaBox.String = img.BoundingBox.String;
    doc.Rect.String = doc.MediaBox.String;

在哪里doc is Docimg is XImage

于 2013-12-17T09:32:04.153 回答
0

您遇到的特定问题是由于将打印机设置为纵向。

作为 PDF 对象,您可能需要模拟一个模仿您所追求的图像大小的页面。

您最好将原始文档发送到图像并添加 TIFF 文件。

于 2011-04-25T18:49:19.307 回答
0

如我所见,图像比例系数不正确。您应该将图像高度和图像宽度划分为 1,33(3)(即 96f/72f)

默认情况下 PDF 用户单位为 1⁄72 英寸,因此您的图像 DPI 应与原始图像成比例。

于 2013-06-26T04:10:16.453 回答
0

取决于如何构建 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);
于 2011-04-26T13:59:30.897 回答