2011-04-25 24 views
3

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

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

+1

你有没有找到一个解决办法? abcPDF也拉伸我的图像,即使我先设置媒体箱。 – 2011-12-02 22:59:49

回答

0

你有具体的问题是由于具有打印机设置为纵向。

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

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

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

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

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

1

试试这个:

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

其中doc is Docimg is XImage

+0

谢谢,这对我有用。 – 2017-04-07 13:57:09