2014-10-30 18 views
1

我有一個包含包含表格的文本框的單元格。在內部表格中的一些單元格中,我添加了一個段落。在段落內部,我通過addtext方法放置了文本,如「WordA WordB」。單元格的大小將導致「WordA」和「WordB」之間的換行。使用MigraDoc在單個空間上進行多個包裝

的問題是,我期待:

WordA 
 
WordB

我所得到的是:

WordA 
 

 
WordB

是否有SETT在某處獲得我期望的或者這是渲染器中的錯誤?

回答

0

這是在段落rederer(ParagraphRenderer.cs)的錯誤。實際上我發現了2個錯誤。首先是如果當前行不適合,並且下一個「文本」是空白(「」)。第二個是如果當前行是空白(「」),下一行不適合。

第一個錯誤很容易修復,我改變了HandleNonFittingLine子例程繼續前進,直到this.currentLeaf不是空白(「」)。

第二個錯誤很難找出並修復。我不得不使用Format函數來查找下一個葉,並將Next Leaf的Current屬性傳遞給FormatElement(如果下一個葉存在)。然後,我不得不修改FormatElement函數以選擇性地獲取第二個參數。然後,我通過返回FormatResult.Ignore來修改FormatElement函數,如果當前葉是空白(「」),並且下一個葉不適合具有空白(「」)的當前行。

1

我認爲這是一個錯誤 - 典型地表示當字是比列的寬度允許較長的錯誤。

對於典型的場景(在寬列短詞)這個問題將不會出現。用狹長的文字說出你長長的單詞有時會得到這個錯誤。長字中的連字符或軟連字符將允許MigraDoc正確地打破單詞。

相關問題