MigraDoc - 如何避免段落之间的换行符

时间:2013-03-15 17:49:13

标签: c# line-breaks paragraph pdfsharp migradoc

我想知道是否有办法避免某些段落之间的换行。 例如:

Paragraph PjourneyTitle = sec.AddParagraph(journeyTitle, "Heading2");
Paragraph Pjourney = sec.AddParagraph();
Pjourney.Format.Font.Bold = true;
Pjourney.AddText(offer.Destination);

在PjourneyTitle和Pjourney之间有一个换行,我想避免。

我今天一整天都在谷歌上搜索无济于事。

非常感谢任何帮助。提前谢谢!

编辑: 使用你们建议的代码后: 这对我来说似乎不起作用......不管是什么原因。虽然KeepWithNext似乎是ParagraphFormat中的一个选项,但将其设置为true对我没有任何帮助。我正在设置一个Style(Heading2),我在我的MigraDoc代码中使用它,如上面发布的那样。

这是Heading2的样式代码:

style = document.Styles["Heading2"];
style.ParagraphFormat.LeftIndent = "0cm";
style.ParagraphFormat.KeepWithNext = true;
//style.ParagraphFormat.KeepTogether = true;
style.Font.Size = 10;
style.Font.Bold = true;
style.ParagraphFormat.PageBreakBefore = false;
style.ParagraphFormat.SpaceBefore = 6;
style.ParagraphFormat.SpaceAfter = 6;

2 个答案:

答案 0 :(得分:2)

我认为你正在寻找keepWithNext属性。将其设置为true。

http://msdn.microsoft.com/en-us/library/system.windows.documents.paragraph.keepwithnext.aspx

答案 1 :(得分:2)

KeepWithNext将确保第一段的最后一行和第二段的第一行将在同一页面上。因此,它可以防止这两段之间的分页,但不会阻止段落内的分页。

KeepTogether将阻止段落内的分页。

如果你想将两个段落都视为一个牢不可破的块,那么在Paragraphs和第一段的KeepWithNext上使用KeepTogether就可以了。

按照设计,每个段落都以新的一行开头。没有办法阻止段落之间的换行(对不起,我应该更仔细地阅读这个问题)。

您可以使用AddFormattedText在段落中混合使用不同的格式(例如粗体和普通格式)。

您可以使用表格(可能带有隐藏边框)来拥有两个不同的列。

因此,根据您的需要,AddFormattedText或表格可能是最佳选择。