我有一个代码,在那里我创建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%相同的,一个完美的工作,另一个插入额外的换行符符:
在内存中的结构是正确的:
该migradoc样式在两种形式(工作和不及格)也设置相同。
任何人有为什么发生这种情况的任何想法?
我不知道,如果可以有一些情境(单元格样式?)影响本,但它是非常奇怪的。不是我第一次看到这样的事情与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(好就知道了)之后定义好。
一个有用的方法来研究这样的问题:您可以创建MDDDL文件,工程的版本和不工作,然后比较MDDDL文件的版本。 看这里: http://pdfsharp.net/wiki/MigraDocDDL.ashx
MDDDL文件是有点可读和可用于检查你真正添加到您的文件 - 即使你只有预期不起作用版本。