Страницы и элементы

Узнайте о страницах PDF, нативном исходном содержимом, редактируемых наложениях и системах координат.

Структура документа

IPdfDocument содержит нормализованную модель документа PDF:

  • pages хранит порядок, размеры, поворот, слои, метки и нативные поля PDF для страниц.
  • objects хранит семантические объекты документа.
  • displayLists сохраняет операции PDF на уровне отрисовки и точность исходного документа.
  • textStories хранит редактируемый поток текста независимо от нестабильной группировки глифов PDF.
  • assets, styles и native сохраняют повторно используемые и относящиеся к источнику ресурсы.
  • sources, edits и exportPlan записывают происхождение и замысел экспорта.

В импортированном PDF не каждая видимая исходная операция становится редактируемым элементом фасада. Нативное содержимое может оставаться в списках отображения, пока действие пользователя не повысит или не заменит его.

Страницы

FPdf читает страницы в материализованном порядке и вставляет пустые страницы:

TypeScript
const pages = pdf.getPages()const firstPage = pdf.getPageByIndex(0)const pageById = firstPage ? pdf.getPageById(firstPage.getId()) : nullconst appendedPage = pdf.insertPage()

insertPage(index) принимает целое число от 0 до текущего количества страниц. Новая страница наследует размер, поворот и поля PDF соседней страницы. Если соседней страницы нет, используются размеры A4: 595 на 842 пункта.

Нативное содержимое и редактируемые наложения

FPdfPage.getElements() возвращает сохраняемые редактируемые наложения в z-порядке. Типизированные методы доступа фильтруют тот же слой наложений:

Метод доступаОбёртка фасада
getTextBoxes()FPdfTextBox
getParagraphs()FPdfParagraph
getLists()FPdfList
getTables()FPdfTable
getImages()FPdfImage
getDividers()FPdfDivider
getAnnotations()FPdfAnnotation

getTextSpans() работает иначе: он перечисляет снимки видимых операций нативного текста. Вызов replaceText() для диапазона скрывает нативную операцию и создаёт новое редактируемое текстовое поле.

Системы координат

Основная модель и публичный фасад намеренно используют разные единицы:

ГраницаЕдиницы и начало координат
Позиции и размеры фасада, пути аннотаций и ширина штриховПункты PDF, размещение от верхнего левого угла
Геометрия страниц и объектов основной моделиEMU, начало координат в верхнем левом углу
Импортированные pdfBoxes и сопоставления с нативным источникомПользовательское пространство PDF, начало координат в нижнем левом углу

В коде приложения используйте getTransform, setPosition, setSize, setRotation и типизированные параметры вставки фасада. Применяйте ptToEmu, emuToPt и связанные средства преобразования, только когда создаёте данные модели более низкого уровня.

Публичные ограничения редактирования

Фасад проверяет несколько ограничений модели:

  • Ширина и высота должны быть положительными конечными значениями, а позиции и повороты — конечными.
  • Уровни списка находятся в диапазоне от 0 до 8; начальный номер упорядоченного списка должен быть положительным целым числом.
  • Размеры таблицы должны быть положительными целыми числами, а количество ячеек не должно превышать 10,000.
  • Вставка аннотаций через фасад поддерживает выделение цветом, подчёркивание, зачёркивание, волнистое подчёркивание и рисование от руки.
  • Непрозрачность изображения находится в диапазоне от 0 до 1, а прямоугольник обрезки должен иметь положительную площадь.
  • Диапазоны текста используют смещения UTF-16 с включённым началом и исключённым концом.

Примеры для конкретных задач см. в разделе Редактирование PDF.

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.