将abcPDF添加到pdf后,abcPDF会使我的图像格式错误

时间:2011-04-25 18:45:39

标签: c# pdf abcpdf

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

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

4 个答案:

答案 0 :(得分:1)

试试这个:

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

其中doc is Docimg is XImage

答案 1 :(得分:0)

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

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

将原始文档发送到图像并添加TIFF文件可能会更好。

答案 2 :(得分: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);

答案 3 :(得分:0)

我可以看到,图像比例系数不正确。您应该将图像高度和图像宽度除以1,33(3)(即96f / 72f)

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