Please take a look at the MultipleImagesInCell example. It uses three images:
public static final String IMG1 = "resources/images/brasil.png"; public static final String IMG2 = "resources/images/dog.bmp"; public static final String IMG3 = "resources/images/fox.bmp";
These are the image instances:
Image img1 = new Image(ImageDataFactory.create(IMG1)); Image img2 = new Image(ImageDataFactory.create(IMG2)); Image img3 = new Image(ImageDataFactory.create(IMG3));
The easiest way to add multiple images to a single cell is by using
add multiple times:
Table table = new Table(1); table.setWidthPercent(50); table.addCell("Different images, one after the other vertically:"); Cell cell = new Cell(); // There's no image autoscaling by default in iText7 cell.add(img1.setAutoScale(true)); cell.add(img2.setAutoScale(true)); cell.add(img3.setAutoScale(true)); table.addCell(cell); doc.add(table);
The result looks like this:
As you can see, the images were scaled by using
setAutoScale(true), to fit the width of the cell.
If that isn't what you want, you have to improve your question, because you only claim that you can't add three images to the same cell, whereas this simple example proves the exact opposite.
Maybe you want something that looks like this:
In the first row with images, we use the same
add() method as before, but we change the width percentage of the image to 20%:
cell = new Cell(); img1.setWidthPercent(20); cell.add(img1); img2.setWidthPercent(20); cell.add(img2); img3.setWidthPercent(20); cell.add(img3); table.addCell(cell);
In the second row with images, we use a different approach: we have wrapped the images inside
Paragraph object, so that we can put them next to each other:
Paragraph p = new Paragraph(); img1.scale(0.3f, 0.3f); p.add(img1); p.add(img2); p.add(img3); table.addCell(p);
Observe that I scaled the first image. The three images wouldn't fit next to each other if that image kept its original size.
Wrapping an image inside a
Paragraph has the advantage that we can mix images and text:
p = new Paragraph("The quick brown "); p.add(img3); p.add(" jumps over the lazy "); p.add(img2); cell = new Cell(); cell.add(p); table.addCell(cell);
Click this link if you want to see how to answer this question in iText 5.