abcPDF在将图像添加到PDF后使其变形。

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

1
你找到解决方案了吗?即使我先设置mediabox,abcPDF也会拉伸我的图片。 - Ivy
4个回答

1

试试这个:

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

其中 doc 是 Doc,而 img 是 XImage


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);

0
你遇到的问题是打印机设置为纵向造成的。
作为PDF对象,您可能需要模拟一个页面,使其模仿您想要的图像大小。
您最好将原始文档发送到图像并添加TIFF文件。

0

从我所看到的情况来看,图像缩放系数不正确。您应该将图像高度和图像宽度除以1.33(3)(即96f/72f)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接