1

如何将矩形(或其他图形元素)作为内联元素添加到 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 值。我根本没有。元素应该打印在当前位置,无论它在哪里。

有什么线索吗?

4

1 回答 1

2

你需要一个Chunk你已经定义了一个通用标签的。例如,在这个列出许多电影的示例中,在电影制作年份绘制了一个薄膜片段,并在指向 IMDB 的链接的背景中绘制了一个椭圆。

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

于 2013-08-12T11:26:02.233 回答