Аннотации и нативный текст

Вставляйте поддерживаемые аннотации PDF и преобразуйте импортированный нативный текст в редактируемые текстовые поля.

Редактируемые аннотации являются сохраняемыми наложениями. Импортированный текст остаётся нативным, пока видимый текстовый фрагмент не будет преобразован через фасад.

Вставка аннотаций

TypeScript
const highlight = page.insertAnnotation({  annotationType: univerAPI.Enum.PdfAnnotationType.HIGHLIGHT,  left: 36,  top: 72,  width: 180,  height: 18,  markup: {    color: '#fde047',    opacity: 0.6,  },})

Фасад поддерживает выделение, подчёркивание, зачёркивание, волнистое подчёркивание и рукописные аннотации. Для рукописной аннотации нужны непустые пути; другие подтипы ядра этот API не принимает.

Чтение данных и стиля аннотации

TypeScript
const markup = highlight.getMarkup()const style = highlight.getStyle()highlight.setStyle({  stroke: { color: '#ca8a04', width: 1 },  opacity: 0.75,})

getMarkup() и getInk() возвращают отдельную геометрию в пунктах PDF. setStyle() обновляет поддерживаемые заливку, штрих и непрозрачность; непрозрачность должна быть от 0 до 1.

Замена импортированного нативного текста

TypeScript
const matchingSpan = page  .getTextSpans()  .find((span) => span.getText().includes('Draft'))if (matchingSpan) {  const textBox = matchingSpan.replaceText('Final')  textBox.setTextStyle({ bold: true })}

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

FPdfTextSpan является дескриптором снимка. После замены он устаревает, поэтому перед следующей операцией снова вызовите getTextSpans().

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

© 2026 DreamNum Co., Ltd.