如何将矩形(或其他图形元素)作为内联元素添加到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值。我根本就没有。这些元素应该打印在当前位置,无论在哪里。
任何线索?
答案 0 :(得分:2)
您需要Chunk
,并为其定义了generic tag。例如,在列出一些电影的this example中,在电影制作的一年中绘制了一片薄膜,并在IMDB链接的背景中绘制了一个椭圆。
如果查看MovieYears示例,您将了解如何使用PdfPageEvent
接口及其onGenericTag()
方法。你是对的,你不能将Rectangle
添加到Paragraph
(恕我直言,这没有多大意义)。如您所示,您需要将矩形绘制为直接内容,并使用Chunk
方法获得setGenericTag()
的坐标。只要在页面上绘制Chunk
,其坐标就会传递给onGenericTag()
方法。