【发布时间】:2012-12-21 22:34:48
【问题描述】:
我正在使用 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;
编辑: 当我尝试这个时,属性不会影响这些段落,只是所有行都从同一点开始。
有可能吗?
【问题讨论】:
-
当你尝试这样做时会发生什么......?
-
想想左上角,右下角......根据你在做什么如果我理解正确......你正在覆盖段落位置?如果我理解正确,你需要相应地调整我会说通过调整第一个参数..所以你可能不得不采取最后一个起始位置并添加 5 或 10 例如..
-
对不起,你能告诉我如何得到最后的起始位置吗?
-
你能把它放在一个属性中吗..?或者你是硬编码它..10,10,10,10 然后 20,10,10,10 例如..
-
抱歉,如果我理解正确?你想让我设置段落的每一行的起始位置,同时在 columntext 中使用它。你能告诉我我是否理解正确吗?