如何使用iTextSharp在pdf中绝对定位段落

本文关键字:定位 位段 何使用 iTextSharp pdf | 更新日期: 2023-09-27 17:51:06

我使用的是ASP。. NET, c#和iTextSharp,用于从头动态创建pdf。

我正在使用这个

Phrase ph = new Phrase(text);
Paragraph p = new Paragraph(ph);
p.Alignment = Element.ALIGN_JUSTIFIED;
p.SpacingBefore = spaceBefore;
p.FirstLineIndent = 170;
p.IndentationLeft = 30;
p.IndentationRight = 50;
doc.Add(p)

所以你知道我想用段落。空格之前。但我需要在pdf中定位三个段落,我正在从用户获得段落的文本。因此,现在基于前一段的行数,下一段将随着我不想要的高度而变化。

于是我想到用这个。

ColumnText ct = new ColumnText(cb);
ct.AddText(p);
ct.SetSimpleColumn(100, 100, 500, 500);
ct.Go();

但是在本例中,我希望第一行和第二行的起始点不同,就像这样

p.FirstLineIndent = 170;
p.IndentationLeft = 30;
p.IndentationRight = 50;
编辑:

当我这样做的时候,属性不影响这些段落,只是所有的行都从同一个点开始。

有可能吗?

如何使用iTextSharp在pdf中绝对定位段落

我发现答案很简单。我们可以设置columntext属性

columntext.SetIndent(100, false);

只给firstline添加空格。对于行间距,我使用这个

columntext.Leading = 31;

因此,如果使用columntext作为段落的绝对位置,那么段落属性将不起作用。但是我们可以使用columntext属性