MigraDoc - 额外和不必要的换行符

问题描述 投票:1回答:1

我有一个代码,在那里我创建4条线路,其中3使用制表符分隔行标签和参数一个段落。令人惊讶的是,在另一种形式完美地工作的一个代码,让我大伤脑筋在目前的形式,尽管它几乎是100%相同。两个额外的线路出现线路标签和参数之间。

    Dim ParPara As New Paragraph   ' create new paragraph
    Dim formtext As New FormattedText
    formtext.Bold = True
    formtext.AddText("ABC 12345") 
    Dim formtext2 As New FormattedText
    formtext2.Bold = True
    formtext2.AddText("163658468435831484")   
    Dim formtext3 As New FormattedText
    formtext3.Bold = True
    formtext3.AddText("PARAMETER 1")  
    ParPara.Add(formtext4)
    ParPara.AddLineBreak()     ' intentional line break at the end of line
    ParPara.AddText("Row Header 1:")
    ParPara.AddTab()
    ParPara.Add(formtext)
    ParPara.AddLineBreak()     ' intentional line break at the end of line
    ParPara.AddText("Row Header 2:")
    ParPara.AddTab()
    ParPara.Add(formtext2)
    ParPara.AddLineBreak()     ' intentional line break at the end of line
    ParPara.AddText("Row Header 3:")
    ParPara.AddTab()
    ParPara.Add(formtext3)
    ...
    TableRowHead0F.Cells(1).Add(ParPara)

我甚至比在内存段落的内容和它的两种形式100%相同的,一个完美的工作,另一个插入额外的换行符符:

enter image description here

在内存中的结构是正确的:

enter image description here

该migradoc样式在两种形式(工作和不及格)也设置相同。

任何人有为什么发生这种情况的任何想法?

编辑:作为建议,我比较MDDDLs,我看不出有什么差别:enter image description here

我不知道,如果可以有一些情境(单元格样式?)影响本,但它是非常奇怪的。不是我第一次看到这样的事情与MigraDoc ...

编辑2:

这些问题在切换一个样式定义的线的顺序,我不得不在最后这段代码的第2行:

    Dim sStyle As Style = PruvDoc.Styles(StyleNames.Normal)
    sStyle = PruvDoc.Styles.AddStyle("Quest", "Normal")
    sStyle.ParagraphFormat.TabStops.Clear()
    sStyle.ParagraphFormat.TabStops.AddTabStop("9cm", TabAlignment.Left, TabLeader.Dots)

......这意味着制表位被应用到“正常”的风格,而不是“探秘”。对期望,它的一部分,那里的问题ocured(好就知道了)之后定义好。

pdf-generation newline migradoc
1个回答
1
投票

一个有用的方法来研究这样的问题:您可以创建MDDDL文件,工程的版本和不工作,然后比较MDDDL文件的版本。 看这里: http://pdfsharp.net/wiki/MigraDocDDL.ashx

MDDDL文件是有点可读和可用于检查你真正添加到您的文件 - 即使你只有预期不起作用版本。

© www.soinside.com 2019 - 2024. All rights reserved.