c# - 如何使用 iTextSharp 绝对定位 pdf 中的段落?

标签 c# asp.net itext

我使用 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)

正如你所知,我想到了使用paragraph.spacebefore。但我需要在 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;

编辑: 当我尝试此操作时,属性不会影响这些段落,只是所有行都从同一点开始。

可能吗?

最佳答案

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

columntext.SetIndent(100, false);

它只会将空格添加到第一行。然后对于行距,我使用了它。

columntext.Leading = 31;

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

关于c# - 如何使用 iTextSharp 绝对定位 pdf 中的段落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14208800/

相关文章:

c# - "linq where"不解析属性?

c# - 从字符串中获取文件名

javascript - 在 INPUT 元素中设置不执行 javascript 的特殊字符

c# - 使用 C#、asp.net 插入 Outlook 约会

c# - 在第一列中显示第二列的值(如果第一列为空,则作为后备)

javascript - onclick 函数中不止一个命令

java - 电子邮件中的 itext PDF 附件

asp.net - itextsharp 不关闭文件

.net - 如何在绝对位置插入 iTextSharp.text.Rectangle 矩形?

c# - 用于 Excel 克隆的正确数据结构