Генерация страниц

Генерация страниц

Генерация страниц

Aspose.PDF FOSS for .NET предоставляет движок компоновки на основе абзацев для создания PDF‑контента. Таблицы, плавающие блоки, заголовки/нижние колонтитулы и штампы позволяют создавать структурированные страницы без ручного построения операторов потока контента.


Добавление абзацев

Page.Paragraphs является точкой входа для добавления элементов контента.

using var doc = new Document();
var page = doc.Pages.Add();

page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");

Таблицы

Table поддерживает строки, ячейки, ширины столбцов, границы и состояние текста.

var table = new Table();
table.ColumnWidths = "100 200 100";

var row = table.Rows.Add();
row.Cells.Add("Name");
row.Cells.Add("Description");
row.Cells.Add("Price");

page.Paragraphs.Add(table);

Форматирование ячеек

Cells.Add возвращает Cell, где вы можете настроить границы, отступы и вложенное содержимое.

var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);

Плавающие блоки

FloatingBox размещает контент по абсолютным координатам на странице.

var box = new FloatingBox(200, 100);
box.Left = 72;
box.Top = 700;
box.Paragraphs.Add(new TextFragment("Positioned text"));
page.Paragraphs.Add(box);

Заголовки и колонтитулы

HeaderFooter добавляет повторяющийся контент в верхней или нижней части страниц.

var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);

var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);

Штампы страниц

PdfPageStamp накладывает содержимое одной страницы PDF на другую.

var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);

Советы и лучшие практики

  • Используйте Table.ColumnWidths как строку значений точек, разделённых пробелами, для управления макетом.
  • FloatingBox полезен для абсолютного позиционирования — комбинируйте с Table для структурированного контента.
  • HeaderFooter.FromText поддерживает {0} в качестве заполнителя номера страницы.
  • Добавьте все абзацы перед вызовом Save — движок макета обрабатывает контент последовательно.
  • Используйте BorderInfo для добавления границ к таблицам, ячейкам и плавающим блокам.

Общие проблемы

IssueCauseFix
Table overflows pageToo many rows for one pageThe library auto-paginates; adjust margins if needed
Header not appearingApplyAsHeader called after SaveApply headers before saving
FloatingBox at wrong positionCoordinates measured from top-left in paragraph unitsVerify units match your expectations

Часто задаваемые вопросы

Могу ли я создавать многостраничные таблицы?

Да. Когда таблица превышает доступную высоту страницы, она автоматически продолжается на следующей странице.

Как добавить изображения в ячейки таблицы?

Создайте абзац Image и добавьте его в коллекцию Paragraphs ячейки.

Могу ли я импортировать данные из массива в таблицу?

Да. Используйте Table.ImportArray для заполнения таблицы из двумерного массива.


Сводка справки API

Класс / МетодОписание
ParagraphsУпорядоченные элементы контента на странице
Paragraphs.AddДобавить элемент абзаца (текст, таблица, график и т.д.)
TableСеточный макет с рядами, ячейками и ширинами столбцов
Table.ImportArrayЗаполнить таблицу из массива
RowsКоллекция строк в таблице
CellsКоллекция ячеек в строке таблицы
BorderInfoОформление границ для таблиц, ячеек и блоков
FloatingBoxКонтейнер контента с абсолютным позиционированием
HeaderFooterПовторяющийся контент заголовка или нижнего колонтитула
HeaderFooter.FromTextСоздать заголовок/нижний колонтитул из текстового шаблона
PdfPageStampНаложить страницу PDF в виде штампа

См. также

 Русский