c# - MigraDoc - 如何避免段落之间换行

标签 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 对我没有任何作用。我正在设置一个样式 (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;

最佳答案

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

KeepTogether 将防止段落内分页。

如果您想将两个段落视为牢不可破的 block ,则在两个段落上使用 KeepTogether 并在第一段上使用 KeepWithNext 应该可以解决问题。

按照设计,每个段落都以新行开始。无法防止段落之间换行(抱歉,我应该更仔细地阅读该问题)。

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

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

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

关于c# - MigraDoc - 如何避免段落之间换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15438970/

相关文章:

c# - 为什么这个行得通而这个行不通?

c# - 序列化时不忽略在 DefaultValue 中声明的数组

c# - 捆绑后未将 Jquery UI css 添加到我的元素中

c# - 为什么空的用户定义结构没有 "Use of unassigned local variable"编译错误?

vba - 多行 If 语句

xml - 如何在R中融合XML数据中特定类型的节点?

html - 将文本环绕在 div 周围不起作用

php - 在 vars 中处理带有换行符的字符串

Ruby 或正则表达式去除多余的换行符

python - 如何使用正则表达式匹配段落