ITextSharp在单词末尾添加三个点

时间:2018-12-20 11:03:23

标签: c# .net itext

我有一个包含传感器数据的表。有些传感器的长名称不适合单元格。 我想在长传感器名称的末尾添加三个点(例如文本溢出:css中的省略号)。我想在没有硬编码值的情况下灵活地做到这一点。因为将来列数可能会有所不同。 我该怎么做?

我这样创建表:

var table = new PdfPTable(columns.Length);
        var widths = new List<float>();
        for (var i = 0; i < columns.Length; i++)
        {
            widths.Add(1f);
        }

        table.SetWidths(widths.ToArray());

并填写:

for (var i = 0; i < columns.Length; i++)
        {
            var cell = new PdfPCell(new Phrase(columns[i], tableDataFont));
            cell.UseAscender = true;
            cell.HorizontalAlignment = Element.ALIGN_CENTER;
            cell.VerticalAlignment = Element.ALIGN_MIDDLE;
            cell.BackgroundColor = new Color(204, 204, 204);
            cell.MinimumHeight = 20f;
            table.AddCell(cell);
        }

Sensor with long name

1 个答案:

答案 0 :(得分:0)

类似的东西应该起作用...

    var text = "testtesttesttesttest";
    var maxLength = 7;
    var displayname = text;

    if (text.Length > maxLength)
    {
        displayname = text.Substring(0, maxLength) + "...";
    }

考虑到您自己没有发布任何代码,我只能提供一些逻辑。

我在这里所做的只是获取真实的价值(将其插入文本中)。

声明您希望字段中文本的最大长度为(maxLength)。

创建一个存储变量以用于名称的操作,而不会丢失原始数据(以防您保留该原始数据)。

然后检查文本是否长于最大长度,并用“ ...”替换所有太长的文本。

然后,您可以将“显示名称”返回到您希望其进入的任何字段。

这很可能不是您想要的,但它确实可以回答您的问题。