Данные модуля PDF

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

IPdfUnitData

IPdfUnitData — сохраняемый снимок одного модуля UNIVER_PDF. Его схема — univer-pdf-unit, текущая версия схемы — 1, а номера редакций начинаются с 1.

СвойствоТипНазначение
schema'univer-pdf-unit'Стабильный идентификатор схемы модуля PDF
schemaVersion1Текущая версия схемы модуля PDF
idstringИдентификатор, общий для хранилища, совместной работы, ресурсов и экспорта
revnumberАвторитетная редакция модуля
namestringОтображаемое для пользователя имя PDF
sourceDocumentRefIPdfSourceDocumentRefНеизменяемые сведения о происхождении импортированного артефакта PDF
documentIPdfDocumentИмпортированная основа или основа пустого документа
editStateIPdfDurableEditStateПринятый и сохранённый замысел правок
documentShell?IPdfDocumentShellНебольшой каталог страниц и индекс фрагментов для PDF с блочным хранением
fragmentIndex?IPdfUnitFragmentIndexЛогическое сопоставление страниц и общих данных с сохранёнными фрагментами
resourceBindings?Record<string, PdfDurableResourceBinding>Сохраняемые привязки нативных или управляемых Univer ресурсов
fragmentBindings?Record<string, IPdfFragmentArtifactBinding>Привязки файлов времени выполнения для независимо загружаемых фрагментов
capabilityReport?IPdfCapabilityReportРешения импорта или времени выполнения о поддерживаемых действиях и резервных вариантах
metadata?Record<string, PdfJsonValue>Метаданные приложения или интеграции

Основа и слой правок

Импортированный document — неизменяемая основа. При редактировании он не перезаписывается напрямую. Замены текста, вставленные объекты, изменения страниц, скрытие исходных операций и управляемые ресурсы записываются в editState, а затем проецируются поверх основы для отрисовки и экспорта.

Такое разделение сохраняет происхождение нативного PDF и позволяет экспортёрам определять, какие исходные операции можно копировать, скрывать или заменять.

Выберите правильное представление

pdf.getDocument() возвращает импортированную основу. pdf.save() возвращает полный снимок модуля с сохраняемым состоянием правок. Расширенные интеграции могут получить текущую проекцию через pdf.getModel().getMaterializedDocument().

Создание и сохранение снимка

TypeScript
const pdf = univerAPI.createPdf({ name: 'Untitled contract' })const page = pdf.getPageByIndex(0)page?.insertTextBox({  text: 'Draft',  left: 36,  top: 36,})const snapshot = pdf.save()await applicationStorage.save(snapshot.id, snapshot)

Восстановите полный снимок через фасад:

TypeScript
const snapshot = await applicationStorage.load('pdf-unit-id')const pdf = univerAPI.createPdf(snapshot)

Не изменяйте объект снимка после запуска модуля. Используйте методы фасада или зарегистрированные команды, чтобы проверка, отмена и повтор, совместная работа и замысел экспорта оставались согласованными.

PDF с блочным хранением

Большие или удалённо хранящиеся PDF могут использовать documentShell, fragmentIndex и fragmentBindings. Оболочка предоставляет размеры, порядок и метки страниц, а также ID блоков до загрузки содержимого каждой страницы. Фрагменты страниц и общих данных материализуются через поставщиков по мере необходимости для интерфейса.

Эти поля являются контрактами обмена и хранения. Код приложения обычно получает их от служб обмена PDF или совместной работы и сохраняет без изменений.

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

© 2026 DreamNum Co., Ltd.