Аннотации и нативный текст
Вставляйте поддерживаемые аннотации PDF и преобразуйте импортированный нативный текст в редактируемые текстовые поля.
Редактируемые аннотации являются сохраняемыми наложениями. Импортированный текст остаётся нативным, пока видимый текстовый фрагмент не будет преобразован через фасад.
Вставка аннотаций
const highlight = page.insertAnnotation({ annotationType: univerAPI.Enum.PdfAnnotationType.HIGHLIGHT, left: 36, top: 72, width: 180, height: 18, markup: { color: '#fde047', opacity: 0.6, },})Фасад поддерживает выделение, подчёркивание, зачёркивание, волнистое подчёркивание и рукописные аннотации. Для рукописной аннотации нужны непустые пути; другие подтипы ядра этот API не принимает.
Чтение данных и стиля аннотации
const markup = highlight.getMarkup()const style = highlight.getStyle()highlight.setStyle({ stroke: { color: '#ca8a04', width: 1 }, opacity: 0.75,})getMarkup() и getInk() возвращают отдельную геометрию в пунктах PDF. setStyle() обновляет поддерживаемые заливку, штрих и непрозрачность; непрозрачность должна быть от 0 до 1.
Замена импортированного нативного текста
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().
Насколько полезно это руководство?