使用MigraDoc在单个空间上进行多次换行

时间:2014-10-30 20:11:31

标签: pdfsharp migradoc

我有一个表格,其中包含一个包含表格的文本框架。在内部表格中的一些单元格中,我添加了一个段落。在段落中,我通过addtext方法放置了文本,例如" WordA WordB"。单元格的大小会导致WordA""和" WordB"。

问题是我期待:



WordA
WordB




我得到的是:



WordA

WordB




是否有某个设置可以获得我期望的内容,或者这是渲染器中的错误?

2 个答案:

答案 0 :(得分:1)

我认为这是一个错误 - 一个错误,通常会显示单词长度超过列宽允许的时间。

对于典型情况(宽列中的短字),此问题不会显示。在狭窄的列中长话,你有时会得到这个bug。长句中的连字符或软连字符将允许MigraDoc正确破坏单词。

答案 1 :(得分:0)

这是段落重定者(ParagraphRenderer.cs)中的一个错误。实际上我发现了2个错误。第一个是当前行不适合而下一个" Text"是一个空白("")。第二个是当前行是空白("")并且下一行不适合。

第一个bug很容易修复,我更改了HandleNonFittingLine子程序以继续前进,直到this.currentLeaf不是空白("")。

第二个错误更难以弄清楚并修复。我必须得到Format函数来查找下一个叶子并将Next Leaf的Current属性传递给FormatElement(如果存在下一个叶子)。然后,我必须修改FormatElement函数以选择性地获取第二个参数。然后我修改FormatElement函数返回FormatResult.Ignore如果当前叶子是空白("")并且下一个叶子不适合当前行与空白(" &#34)