iTextSharp抵消图像

时间:2017-06-27 19:46:04

标签: c# pdf itext

我正在生成一个字节数组图像,为了将其转换为pdf,我将该图像添加到PDF文档中。图像大小正好是812,1015 DPI,即使我有相同大小的文档,图像偏移大约一英寸(红色条表示此偏移),因此我在另一侧缺少相同的数量。为什么PDF以这种方式添加图像。这是代码:

var resizedImage = new Bitmap(812, 1015);
var drawResizedImage = Graphics.FromImage(resizedImage);
drawResizedImage.DrawImage(img, 0, 0, 812, 1015);

resizedImage.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
return getPDFDocument(memoryStream);

private byte[] getPDFDocument(MemoryStream inputImageStream)
{
    MemoryStream workStream = new MemoryStream();
    iTextSharp.text.Document document = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(812, 1015));
    PdfWriter.GetInstance(document, workStream).CloseStream = false;

    document.Open();
    iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(inputImageStream.ToArray());
    document.Add(pdfImage);
    document.Close();

    byte[] byteInfo = workStream.ToArray();
    workStream.Write(byteInfo, 0, byteInfo.Length);
    workStream.Position = 0;

    return workStream.ToArray();
}

这就产生了这个 enter image description here

1 个答案:

答案 0 :(得分:1)

将此行添加到代码块

  

pdfImage.SetAbsolutePosition(0,0);

你应该看到这个:

document.Open();
iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(inputImageStream.ToArray());
pdfImage.SetAbsolutePosition(0, 0);
document.Add(pdfImage);
document.Close();

这应该给你想要的定位。