iText:单元格中的图像列表

时间:2015-08-20 23:45:05

标签: java pdf itext

我想创建一个包含点列表的表。我不知道我有多少点,但是如果它们溢出了单元格,我希望它们就像文本一样包裹起来。我的代码是这样的:

PdfPTable table = new PdfPTable(1);
table.setTotalWidth(new float[]{80});
table.setLockedWidth(true);
Phrase listOfDots = new Phrase();
for (int i = 0; i < 40; i++) {
  listOfDots.add(new Chunk(pdf.correct, 0, 0));
  listOfDots.add(new Chunk(" "));
}
table.addCell(listOfDots);
outerCell.addElement(table);

圆点包裹,就像我预期的那样,但它们并不都具有相同的尺寸。每行有7行,每行5个点,所有35个点的大小相同。最后一排5个点大约是其他一半的一半。

(我试图发布图片,但我在这个网站上不够老。)

有没有办法让所有图像大小相同?

1 个答案:

答案 0 :(得分:1)

请查看ImagesInChunkInCell示例。我没有使用子弹,而是采用了灯泡的图像。我能够重现您描述的问题,但正如您在list_with_images.pdf中看到的那样,我能够添加一个额外的行:

Collection<? extends Player> lx = Bukkit.getOnlinePlayers();
int testLoc = lx.size();

for (int loc = 0; loc < testLoc; ++loc) {
    Player block = lx.get(loc);
    // ...
}

额外的一行是:

Image image = Image.getInstance(IMG);
image.setScaleToFitHeight(false);
PdfPTable table = new PdfPTable(1);
table.setTotalWidth(new float[]{120});
table.setLockedWidth(true);
Phrase listOfDots = new Phrase();
for (int i = 0; i < 40; i++) {
    listOfDots.add(new Chunk(image, 0, 0));
    listOfDots.add(new Chunk(" "));
}
table.addCell(listOfDots);

这可以防止图像缩放。