Генерація сторінки
Генерація сторінки
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для додавання меж до таблиць, клітинок і плаваючих блоків.
Загальні проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
| Таблиця виходить за межі сторінки | Занадто багато рядків для однієї сторінки | Бібліотека автоматично розбиває на сторінки; за потреби скорегуйте поля |
| Заголовок не відображається | ApplyAsHeader called after Save | Застосуйте заголовки перед збереженням |
| FloatingBox у неправильному положенні | Координати вимірюються від верхнього лівого кута у одиницях абзацу | Перевірте, чи одиниці відповідають вашим очікуванням |
ЧаПи
Чи можу я створювати багатосторінкові таблиці?
Так. Коли таблиця перевищує доступну висоту сторінки, вона автоматично продовжується на наступній сторінці.
Як додати зображення до клітинок таблиці?
Створіть Image абзац і додайте його до колекції Paragraphs клітини.
Чи можу я імпортувати дані з масиву у таблицю?
Так. Використайте Table.ImportArray, щоб заповнити таблицю з двовимірного масиву.
Зведення довідки API
| Class / Method | Description |
|---|---|
Paragraphs | Впорядковані елементи вмісту на сторінці |
Paragraphs.Add | Додати елемент абзацу (текст, таблиця, графік тощо) |
Table | Сіткове розташування з рядками, клітинками та ширинами стовпців |
Table.ImportArray | Заповнити таблицю з масиву |
Rows | Колекція рядків у таблиці |
Cells | Колекція клітинок у рядку таблиці |
BorderInfo | Стилізація меж для таблиць, клітинок та блоків |
FloatingBox | Контейнер вмісту з абсолютним позиціонуванням |
HeaderFooter | Повторюваний вміст заголовка або підвалу |
HeaderFooter.FromText | Створити заголовок/підвал з текстового шаблону |
PdfPageStamp | Накласти сторінку PDF як штамп |