繁体   English   中英

如何在iText7中填充行的剩余空间

[英]How to fill remaining space of a line in iText7

我正在尝试使用带有C#的iText7填充段落最后一行的剩余空间:

var par = new Paragraph(text);
par.Add(c);
document.Add(par);

我如何添加-焦填补行留下的空间? 类似于LineSeparator(new DashedLine()但从我段落的最后一个字符开始,而不是换行。

您可以使用制表符和制表位的概念。 此概念不是特定于iText的。 粗略地说,您可以定义点(制表位),添加制表符将“跳转”到下一个点。 在您的情况下,制表位是行的结尾,您只需要一个制表符。

这是一个完整的示例,使用基线上的小破折号作为填充。 您可以自己实现ILineDrawer以自定义行为或子类化/配置现有实现。 该代码使用Java,但是要将其转换为C#,您基本上需要进行大写,仅此而已。

Document doc = ....;
Paragraph p = new Paragraph("Hello world").add(new Tab());
ILineDrawer filling = new DashedLine();
PageSize pageSize = doc.getPdfDocument().getDefaultPageSize();
Rectangle effectivePageSize = doc.getPageEffectiveArea(pageSize);
float rightTabStopPoint = effectivePageSize.getWidth();
TabStop tabStop = new TabStop(rightTabStopPoint, TabAlignment.LEFT, filling);
p.addTabStops(tabStop);
doc.add(p); 

结果如下:

结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM