Reputation: 313
I had create a table which has 48 images. I put it in right side of cell. So I would like to put in same cell the number of image. At the left side.
Here is my part of code :
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);
}
How could I insert the number of image at the left corner of cell?
Upvotes: 0
Views: 1940
Reputation: 77528
Here's an example.
You need to create a custom IPdfPCellEvent
implementation.
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);
}
}
As you can see, we add a Phrase
with the content number
at an absolute position. In this case: 2 user units apart from the left border of the cell and 16 user units below the top of the cell.
In your code snippet you then add:
cell.CellEvent = new my_event(n);
Where n
is the string value of number
. Now the number will be drawn every time a cell is rendered.
Upvotes: 1