2014-05-09 17 views
0

我创建了一个包含48个图像的表格。我把它放在细胞的右侧。所以我想把相同的单元格放在图像的数量上。在左侧。与itextsharp相同的单元格中的文本和图像

这里是我的部分代码:

for (int i = x; i <= 48; i += 4) 
{ 
    int number = i + 4; 
    imageFilePath = "images/image" + number + ".jpeg"; 
    jpg = iTextSharp.text.Image.GetInstance(imageFilePath); 
    jpg.ScaleAbsolute(166.11023622047f, 124.724409448829f); 
    jpg.BorderColor = BaseColor.BLUE; 
    string numberofcard = i.ToString(); 
    cell = new PdfPCell(jpg); 
    cell.FixedHeight = 144.56692913386f; 
    cell.Border = 0; 
    cell.HorizontalAlignment = Element.ALIGN_RIGHT; 
    cell.VerticalAlignment = Element.ALIGN_MIDDLE; 
    table5.AddCell(cell); 
} 

我怎么会在电池的左上角插入图片的数量?

+0

我会使用单元格事件来做到这一点。 –

+0

我怎么能做到这一点? – NickName

回答

1

下面是一个例子。

您需要创建自定义IPdfPCellEvent实现。

private class MyEvent : IPdfPCellEvent { 
    string number; 
    public MyEvent(string number) { 
     this.number = number; 
    } 
    public void CellLayout(PdfPCell cell, Rectangle position, PdfContentByte[] canvases) { 
     ColumnText.ShowTextAligned(
      canvases[PdfPTable.TEXTCANVAS], 
      Element.ALIGN_LEFT, 
      new Phrase(number), 
      position.Left + 2, position.Top - 16, 0); 
    } 
} 

正如你可以看到,我们添加一个Phrase与绝对位置的内容number。在这种情况下:除了单元格的左边框外,还有2个用户单元,在单元格的顶部以下有16个用户单元。

在您的代码段,你再补充:

cell.CellEvent = new my_event(n); 

nnumber字符串值。现在每次渲染单元格时都会绘制数字。

相关问题