Редактирование графа объектов и сборка страниц
HotPDF открывает полный загруженный граф indirect objects для детерминированной диагностики и контролируемого редактирования, сохраняя при этом явную валидацию и границы на ресурсы
Диагностика и редактирование графа
Стабильный экспорт JSON упорядочивает объекты и ключи словарей детерминированно и может встраивать payload stream в сыром или декодированном виде либо записывать их во внешние файлы
Версионируемый JSON графа объектов передаёт полные снимки или инкрементальные обновления с явной совместимостью схемы, двоичными sidecar, ограниченным парсингом, валидацией ссылок и транзакционным импортом
BuildLoadedObjectDependencyGraph возвращает узлы, упорядоченные по номерам объектов, и рёбра по слотам ссылок — с малым потреблением памяти, достижимостью от Catalog, непосредственными доминаторами и атрибуцией удерживаемой памяти
Удерживаемые байты считаются по дереву доминаторов с корнем в Catalog, поэтому память, достижимая через общие ресурсы, относится только к ближайшему объекту, чьё удаление сделало бы её недостижимой
Проверяемые JSON-патчи поддерживают типизированные значения PDF и отклоняют некорректные пути, ссылки, циклы, payload base64 и несогласованные длины stream до фиксации изменений
Object stream можно инспектировать как сырые отфильтрованные байты или декодированные байты, не материализуя посторонние сжатые члены
Валидация линеаризации проверяет первичный словарь, секцию первой страницы, положение основной таблицы перекрёстных ссылок, подсказки смещений страниц и подсказки общих объектов в пределах, выбранных вызывающим кодом
Воспроизводимость и достижимость
ReproducibleOutput выводит идентификаторы документа из канонически сериализованного контента, включает детерминированное упорядочивание словарей и не использует быстрое копирование неизменённых файлов
Недостижимые indirect objects можно сохранить, отчитаться о них или удалить после обхода с корнями в trailer и графе загруженного документа
Workflows страниц
Сортированная сборка читает несколько исходных документов ограниченными chunk с явным максимальным числом открытых файлов
Диапазоны overlay и underlay используют независимые политики цикла страниц: остановка, повтор, ограничение или обратный порядок
Уплощение поворота преобразует контент, page box, аннотации, destinations и геометрию структуры до сброса поворота страницы
Миниатюры страниц можно читать в сыром или декодированном виде, заменять и объявлять недействительными вместе с изменениями кеша отрендеренных страниц
Основные API
THotPDF.ExportLoadedObjectGraphJSONTHotPDF.ExportLoadedObjectGraphJSONToStreamTHotPDF.ImportLoadedObjectGraphJSONTHotPDF.BuildLoadedObjectDependencyGraphTHotPDF.ApplyLoadedObjectGraphJSONPatchTHotPDF.InspectLoadedObjectStreamTHotPDF.ValidateLinearizedSourceTHotPDF.ReproducibleOutputTHotPDF.ApplyUnreachableObjectPolicyTHotPDF.AssembleCollatedPagesTHotPDF.ComposeLoadedPageRangesTHotPDF.FlattenLoadedPageRotationTHotPDF.ReadLoadedPageThumbnailTHotPDF.SetLoadedPageThumbnailStreamTHotPDF.InvalidateLoadedPageThumbnail