2017-06-27 2 views
0

Je génère une image de tableau d'octets et pour la convertir en pdf, j'ajoute cette image dans un document PDF. la taille de l'image est exactement de 812, 1015 DPI et même si j'ai un document de la même taille, l'image est décalée d'environ un pouce (la barre rouge représente ce décalage), il manque environ la même quantité de l'autre côté . Pourquoi le PDF ajoute-t-il l'image de cette manière? Voici le code:iTextSharp décale l'image

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

Ce produit est ce enter image description here

Répondre

0

Ajouter cette ligne à votre bloc de code

pdfImage.SetAbsolutePosition (0, 0);

Vous devriez voir ceci:

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

Cela devrait vous donner le positionnement souhaité.