2011-11-22 99 views
5

我創建了單獨的單元格中的表格中的6個圖像,即使我設置圖像的高度和寬度在服務器端完全相同與ScaleToFit圖像大小是不一樣的在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

兩件事。

首先,請參閱this post關於將Image包裝在Chunk中。基本上是:

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

第二,如果你想確切相同的大小,那麼你要使用ScaleAbsolute而不是ScaleToFit。後者保持圖像的高寬比,因此100x200圖像縮放到50x50的比例將爲25x50。

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

它看起來很喜歡圖像是適當的大小,現在謝謝!現在我必須將它定位在細胞中,即使它是細胞的一個元素。最後,我認爲這不是我想要做的最好的選擇。 – DaNet

+0

只需使用img1.ScaleAbsolute(120f,155.25f);圖像完美貼合細胞。乾杯克里斯! – DaNet

+1

如果我想要我的圖像35x35毫米,那麼我該怎麼辦?如何計算它在毫米? –