我的任务是重构一个由我的公司不再使用的开发人员编写的旧MigraDoc项目,并且遇到以下代码问题。
self.engine = create_engine(get_db_path(), poolclass=NullPool)
这是有效的,并且它采用双管分隔的注释字段并按预期将其分成新行。问题是,对于非常大的注释字段,渲染的PDF只有1页,文本只是在页面外运行。 (我正在测试的项目在备注字段中有足够的数据,在渲染的PDF中有20多页。)
修改
代码位于像这样定义的文本框架内。
var Split = new String[1];
Split[0] = "||";
if (invoiceObject.Note != null)
{
var Lines = invoiceObject.Note.Split(Split, StringSplitOptions.RemoveEmptyEntries);
for (var i = 0; i < Lines.Count(); i++)
{
if (i > 0)
lineItemParagraph.AddLineBreak();
lineItemParagraph.AddText("" + Lines[i].Replace(" ", " ").Replace("|", ""));
}
}
Text框架位于如下定义的部分内。仔细查看代码,看来这是PDF上唯一的部分。我可能需要更多部分吗?
TextFrame lineItemFrame;
this.lineItemFrame = section.AddTextFrame();
this.lineItemFrame.Height = "3.0cm";
this.lineItemFrame.Width = "8.0cm";
this.lineItemFrame.Left = "0cm";
this.lineItemFrame.RelativeHorizontal = RelativeHorizontal.Margin;
this.lineItemFrame.Top = "9.0cm";
this.lineItemFrame.RelativeVertical = RelativeVertical.Page;
我无法弄清楚如何让MigraDoc自动为我添加分页符。
我错过了一些非常明显的东西吗?
答案 0 :(得分:3)
MigraDoc自动添加分页符 - 有两个例外:TextFrames不会中断,表行不会中断。表只在行之间中断。