2011-11-22 18 views
5

Estoy creando una sola página pdf con 6 imágenes en una tabla en celdas separadas, aunque estoy configurando las imágenes de alto y ancho en el servidor exactamente igual con ScaleToFit los tamaños de las imágenes no son los mismos en la página pdfitextsharp y tamaños de imágenes

¿Hay alguna forma de obtener todas las imágenes del mismo tamaño?

PdfPTable table = new PdfPTable(3); 
table.HorizontalAlignment = Element.ALIGN_CENTER; 
table.WidthPercentage = 100; 
table.TotalWidth = 698.5f; 
table.LockedWidth = true; 
table.SetWidths(new float [] {1,1,1}); 
iTextSharp.text.Image img1 = iTextSharp.text.Image.GetInstance("C:\\Users\\DaNet\\Downloads\\image.jpg"); 
img1.Alignment = iTextSharp.text.Image.ALIGN_CENTER; 
img1.ScaleToFit(120f, 155.25f); 

iTextSharp.text.pdf.PdfPCell imgCell1 = new iTextSharp.text.pdf.PdfPCell(img1); 
imgCell1.HorizontalAlignment = Element.ALIGN_CENTER; 
imgCell1.BackgroundColor = new BaseColor(255, 255, 255); 
imgCell1.Border = iTextSharp.text.Rectangle.NO_BORDER; 
table.AddCell(imgCell1); 

Respuesta

14

Dos cosas.

Primero, vea this post sobre cómo envolver el Image en un Chunk. Básicamente:

iTextSharp.text.pdf.PdfPCell imgCell1 = new iTextSharp.text.pdf.PdfPCell(); 
imgCell1.AddElement(new Chunk(img1, 0, 0)); 

En segundo lugar, si desea que la exacta mismo tamaño entonces usted desea utilizar en lugar de ScaleAbsoluteScaleToFit. Este último mantiene la relación de aspecto de la imagen para que una imagen de 100x200 escalada para ajustarse a 50x50 salga como 25x50.

img1.ScaleAbsolute(120f, 155.25f); 
+0

Parece que la imagen es del tamaño adecuado ahora gracias! Ahora tengo que colocarlo en la celda a pesar de que es un elemento de la celda. Al final, no creo que esa sea la mejor alternativa para lo que estoy tratando de hacer. – DaNet

+0

Simplemente usando img1.ScaleAbsolute (120f, 155.25f); las imágenes se ajustan perfectamente a la celda. ¡Salud, Chris! – DaNet

+1

Si quiero mi imagen de 35x35 mm, ¿qué debo hacer? ¿Cómo se calcula en mm? –

Cuestiones relacionadas