我正在使用Migradoc生成一个表并为几列填充一些动态数据,我在定义表结构时定义了列宽 -
Table table = new Table();
Column column = table.AddColumn(Unit.FromCentimeter(6));
column.Format.Alignment = ParagraphAlignment.Left;
table.AddColumn(Unit.FromCentimeter(6));
table.AddColumn(Unit.FromCentimeter(8));
现在第三列有数据(acs800-07-1234a-5+asdf+asdf+qwer+wert+2345+rg+2345+ag+35+qwe1252rg+34tgh+24rg+253rg+23rgh+235rgh+@34gh+23rg-4s544
),但是它溢出了列并被截断到页面的右侧。它会自动换行但不正确,第二行会丢失一些文本。见图:
任何指针在包装文本中修复此问题将不胜感激。
UPDATE-(显示如何添加表数据的片段)
Row row = table.AddRow();
Cell cell = row.Cells[0];
cell.AddParagraph("ACS880-104");
cell = row.Cells[1];
cell.AddParagraph("R1 – R10");
cell = row.Cells[2];
cell.AddParagraph("acs800-07-1234a-5+asdf+asdf+qwer+wert+2345+rg+2345+ag+35+qwe+125+2rg+34tgh+24rg+253rg+23rgh+235rgh+@34gh+23rg-4s544");
MigraDoc自动断开空格,连字符和软连字符的线条。
你有一个没有空格和没有连字符的长文本。简单的解决方案:在希望允许换行的地方插入软连字符(例如,在每个“+”符号后面加一个软连字符)。
更新:从版本1.50开始,您还可以使用零宽度非连接符来标记允许换行的位置。使用软连字符来获取带连字符的换行符,使用零宽度非连接符来换行,而不使用连字符。