2011-11-22 3 views
5

이미지 크기가 동일하지 않은 서버 측의 이미지 높이와 너비를 정확히 동일하게 설정하더라도 이미지가 서로 다른 별도의 셀에 6 개의 이미지가있는 단일 PDF 페이지를 만듭니다. PDF 페이지.itextsharp 및 이미지 크기

어쨌든 모든 이미지를 똑같은 크기로 만들 수 있습니까?

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

답변

14

두 가지.

ChunkImage을 래핑하는 것에 대해 먼저 this post을 참조하십시오. 기본적으로 : 그런 다음 정확한 같은 크기를 원하는 경우

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

둘째, 당신은 ScaleAbsolute 대신 ScaleToFit을 사용하고 싶습니다. 후자는 이미지의 종횡비를 유지하므로 50x50에 맞게 조정 된 100x200 이미지가 25x50으로 나옵니다.

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

이미지가 현재 크기가 적당하여 좋아요. 이제는 셀의 요소 임에도 불구하고 셀을 배치해야합니다. 결국 나는 그것이 내가하려고하는 것에 대한 최선의 대안이 될 것이라고 생각하지 않는다. – DaNet

+0

그냥 사용하여 img1.ScaleAbsolute (120f, 155.25f); 이미지는 셀에 완벽하게 적합합니다. 건배 Chris! – DaNet

+1

35x35mm의 이미지를 원한다면 어떻게해야합니까? mm 단위로 계산하는 방법? –