使用iText将矩形添加为内联元素

时间:2013-08-12 09:23:06

标签: itext

如何将矩形(或其他图形元素)作为内联元素添加到iText PDF?

我正在努力实现的示例代码:

foreach (Row r in entrylist)
{
    p = new Paragraph();
    p.IndentationLeft = 10;
    p.SpacingBefore = 10;
    p.SpacingAfter = 10;

    p.Add(new Rectangle(0, 0, 10, 10));  <<<<<<<<< THAT ONE FAILS
    p.Add(new Paragraph(r.GetString("caption"), tahoma12b));
    p.Add(new Paragraph(r.GetString("description"), tahoma12));
    ((Paragraph)p[1]).IndentationLeft = 10;
    doc.Add(p);
}

它类似于一列文本块,其中每个都有(仅打印)复选框。

我用DirectContent尝试了各种各样的东西,但它要求我提供绝对的X和Y值。我根本就没有。这些元素应该打印在当前位置,无论在哪里。

任何线索?

1 个答案:

答案 0 :(得分:2)

您需要Chunk,并为其定义了generic tag。例如,在列出一些电影的this example中,在电影制作的一年中绘制了一片薄膜,并在IMDB链接的背景中绘制了一个椭圆。

如果查看MovieYears示例,您将了解如何使用PdfPageEvent接口及其onGenericTag()方法。你是对的,你不能将Rectangle添加到Paragraph(恕我直言,这没有多大意义)。如您所示,您需要将矩形绘制为直接内容,并使用Chunk方法获得setGenericTag()的坐标。只要在页面上绘制Chunk,其坐标就会传递给onGenericTag()方法。