Я поручено рефакторинг старого MigraDoc проекта написанного разработчиком, который больше не с моей компанией, и у меня возникают проблемы со следующим кусочкем коды ..MigraDoc не добавлять разрывы страниц автоматически
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("|", ""));
}
}
Этого работает, и он использует поля с разделителями на две трубы и разрывает их на новые линии, как ожидалось. Проблема в том, что для очень больших полей примечаний рендеринг PDF имеет только одну страницу, и текст просто бежит с страницы. (Элемент, который я тестировал, имеет достаточно данных в поле примечаний для более 20 страниц в рендеринге 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;
Текстовая рамка находится внутри секции, которая определяется следующим образом. Просматривая код, кажется, что это единственный раздел в PDF. Возможно, мне нужно больше секций?
section = this.document.AddSection();
section.PageSetup.StartingNumber = 1;
Я не могу понять, как заставить MigraDoc автоматически добавлять страницы для меня.
Я пропустил что-то болезненно очевидное?
Я думаю, что ваш фрагмент кода пропускает важные части. Является ли текст в таблице? –
Извините, я очень новичок в migradoc, поскольку это был не мой проект. Я просмотрел его, и этот код находится внутри 'TextFrame', который определен в моем отредактированном вопросе. – mituw16
Текстовые рамки не переходят на следующую страницу. Обновлен мой ответ (TextFrames отсутствовали в версии 1). Если текст слишком длинный для одной страницы, то нельзя использовать один «TextFrame». Используйте абзацы или таблицы для автоматического разрыва страницы. Если вы придерживаетесь TextFrames, вам понадобится несколько TextFrames - и разделение текста зависит от вас. Я понимаю, что изменения в коде от другого разработчика могут быть трудными, но я боюсь, что нет простого решения. –