C# 防止文档中的段落拆分

C# 防止文档中的段落拆分,c#,split,pdfsharp,paragraph,migradoc,C#,Split,Pdfsharp,Paragraph,Migradoc,我使用MigraDoc从一些数据库表生成c#格式的PDF文件 我的主要问题是,对于我添加的一些段落,它们无法放入当前页面,因此被拆分到下一页,如何防止? 我希望他们在一页(当前页或下一页) Document doc=新文档(); Section=doc.AddSection(); 段落=第节添加段落(); AddLineBreak()段; AddLineBreak()段; AddLineBreak()段; paragration.Format.TabStops.ClearAll(); 段落.Fo

我使用MigraDoc从一些数据库表生成c#格式的PDF文件

我的主要问题是,对于我添加的一些段落,它们无法放入当前页面,因此被拆分到下一页,如何防止? 我希望他们在一页(当前页或下一页)

Document doc=新文档();
Section=doc.AddSection();
段落=第节添加段落();
AddLineBreak()段;
AddLineBreak()段;
AddLineBreak()段;
paragration.Format.TabStops.ClearAll();
段落.Format.TabStops.AddTabStop(“16cm”,TabAlignment.Right,TabLeader.line);
AddTab()段;
对于(int i=0;i<20;i++)
{
段落段落正文=段落.Section.add段落();
FormattedText ft=段落正文.AddFormattedText(“这是一个标题”,TextFormat.Bold);
ft.Italic=true;ft.Font.Size=11;
ft.Font.Color=Color.FromRgbColor((字节)255,Color.Parse(“0x1E9BC6”);//等于rgb(30155196);
ft.AddLineBreak();
//--详细信息:---添加文本---------------------------------
String DetailText=“这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。这是细节。“;
格式化文本ftdet;
ftdet=paragraphBody.AddFormattedText(DetailText,TextFormat.NotBold);
ftdet.Font.Size=10;
ftdet.Font.Name=“Arial”;
ftdet.AddLineBreak();
ftdet.AddLineBreak();
ftdet.AddText(“事件日期:”+DateTime.Now.ToString(“MM/dd/yyyy h:MM tt”);
}
PdfDocumentRenderer pdfRenderer=新的PdfDocumentRenderer(false,PdfFontEmbedding.Always);
pdfRenderer.Document=doc;
pdfRenderer.RenderDocument();
//将PDF保存到文件:
string filename=“e:\\Report”+DateTime.Now.ToString(“yyyymmddhhmmssff”)+“.pdf”;
pdfRenderer.PdfDocument.Save(文件名);
Process.Start(文件名);

段落在
格式
成员中有一个
KeepTogether
属性。如果为true,则段落的所有行都保留在一页上。
还有一个
KeepWithNext
属性。如果为true,则该段的最后一行将与下一段的第一行位于同一页上

如果有段落,只需编写如下代码:

paragraphBody.Format.KeepTogether = true;
另请参见:

表格单元格永远不会在页面之间断开。因此,属性
KeepTogether
KeepWithNext
在应用于表格单元格中的段落时不起作用

paragraphBody.Format.KeepTogether = true;