К содержимому

Документация

JavaScript SDK: Document: текст и таблицы

Document содержит результат разбора файла. Перед обработкой всех данных проверьте complete() и warnings(). Методы ниже работают локально.

Примеры — отдельные фрагменты тела async function run(ctx). Используйте await только для методов с Promise в сигнатуре.

Как получить объект

const document = await ctx.documents().fromBytes('sku,price\nA-1,1250', 'report.csv');

Методы

text

document.text() → string

Текст документа, включая доступные колонтитулы и примечания Office. В PDF сохраняется разбиение текста по страницам. Структура и форматирование DOCX дополнительно доступны через blocks().

const result = document.text();

format

document.format() → string

Определённый формат: например xlsx, docx, pdf или csv.

const result = document.format();

tables

document.tables() → Array<object>

Листы Excel или таблицы Word: массив объектов name, rows. Числа Excel остаются числами. Поддерживаемые формулы XLSX пересчитываются локально через xlcalculator. Внешние ссылки и макросы не выполняются. rows() и cell() возвращают результат, formula() исходное выражение, cachedValue() сохранённое автором значение. Ошибки доступны через error()/calculation().

const result = document.tables();

rows

document.rows(sheet) → Array<Array<unknown>>

Возвращает строки выбранного листа по индексу или имени. Если листа нет, возвращает пустой массив. Для PDF читайте pages() или text().

const result = document.rows();

pages

document.pages() → Array<object>

Страницы PDF: number, text, ocr. Сканированные страницы распознаются локально на русском и английском. Не более пяти страниц с изображениями и 100 текстовых страниц за один разбор.

const result = document.pages();

links

document.links() → Array<unknown>

Найденные ссылки. Обработчик не переходит по ним и не загружает внешние изображения. При необходимости выберите допустимую ссылку явно через сетевой SDK.

const result = document.links();

complete

document.complete() → boolean

false, если достигнут предел извлечения. Перед сохранением полного отчёта проверьте этот признак. Предел таблиц: 20 листов/таблиц, 5000 строк, 100 столбцов, 50 000 ячеек суммарно; текст до 1 MiB.

const result = document.complete();

warnings

document.warnings() → Array<unknown>

Коды особенностей разбора: сохранённые значения формул, старый формат Office, изображения внутри Word/Excel, предел OCR. Для старых DOC/XLS доступно ограниченное извлечение, встроенные объекты не исполняются.

const result = document.warnings();

sheetNames

document.sheetNames() → Array<string>

Названия извлечённых листов/таблиц в исходном порядке. Для PDF и изображений список пустой.

const result = document.sheetNames();

sheet

document.sheet(sheet) → Worksheet

Лист по индексу с нуля или точному имени. Возвращает Worksheet. При отсутствии листа вызывает понятную ошибку; rows() сохраняет прежнее поведение с пустым массивом. Методы листа работают локально без повторного чтения файла.

const result = document.sheet();

page

document.page(number) → string

Текст страницы PDF или растрового изображения по номеру с единицы. Отсутствующая страница даёт пустую строку, неправильный номер вызывает ошибку. Для Word используйте text().

const result = document.page(2);

matches

document.matches(pattern, limit) → Array<Array<string>>

Ищет совпадения регулярного выражения JavaScript в тексте документа. Возвращает массив совпадений с захваченными группами; не использует синтаксис PCRE.

const result = document.matches('/(\\d+)/');

chunks

document.chunks(characters, overlap) → Array<unknown>

Фрагменты текста в символах Unicode. characters от 100 до 16000, overlap от 0 до characters−1. Метод не отправляет фрагменты во внешние сервисы. Нельзя передавать приватные фрагменты в analyze/transform без отдельной политики обработки.

const result = document.chunks();

blocks

document.blocks() → Array<unknown>

Абзацы и ссылки на таблицы DOCX в порядке исходного документа. Абзац содержит kind=paragraph, level заголовка, align, indent, before, after, marker, depth и runs. У каждого фрагмента runs есть text, bold, italic, underline, size в пунктах. Блок kind=table содержит индекс table в tables(). Для остальных форматов возвращает пустой массив. Значения не отправляются во внешнюю модель.

const result = document.blocks();