Установка скиллов и плагинов OpenClaw осуществляется на ваш страх и риск. Все файлы были получены из открытых источников и предоставляются «как есть». Мы не гарантируем их корректную работу, безопасность или совместимость с вашей системой. Перед установкой настоятельно рекомендуется ознакомиться с содержимым кода и убедиться, что вы понимаете, какие изменения будут внесены в вашу систему.
Обработка Word-документов | Word Document Processing. Создание, чтение и редактирование файлов Word. Поддержка формата .docx, форматирования, таблиц и изображений.
Обзор
Файл формата .docx представляет собой ZIP-архив, внутри которого находятся XML-файлы, описывающие структуру документа.
Краткое руководство
| Задача | Подход |
|---|---|
| Чтение / анализ содержимого | Использовать pandoc или распаковку для доступа к XML |
| Создание нового документа | Использовать docx-js (см. раздел ниже) |
| Редактирование документа | Распаковать → изменить XML → упаковать обратно |
Конвертация .doc в .docx
Устаревшие файлы .doc необходимо предварительно конвертировать перед редактированием:
python scripts/office/soffice.py --headless --convert-to docx document.doc
Чтение содержимого
# Извлечение текста с учётом отслеживаемых изменений
pandoc --track-changes=all document.docx -o output.md
# Доступ к "сырому" XML
python scripts/office/unpack.py document.docx unpacked/
Конвертация в изображения
python scripts/office/soffice.py --headless --convert-to pdf document.docx
pdftoppm -jpeg -r 150 document.pdf page
Принятие всех правок
Чтобы получить «чистый» документ с принятыми изменениями (требуется LibreOffice):
python scripts/accept_changes.py input.docx output.docx
Создание новых документов
Генерация файлов .docx может выполняться с помощью JavaScript, после чего рекомендуется провести валидацию. Установка:
npm install -g docx
Настройка
const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, ImageRun,
Header, Footer, AlignmentType, PageOrientation, LevelFormat, ExternalHyperlink,
TableOfContents, HeadingLevel, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, PageBreak } = require('docx');
const doc = new Document({ sections: [{ children: [/* content */] }] });
Packer.toBuffer(doc).then(buffer => fs.writeFileSync("doc.docx", buffer));
Валидация
После создания документа рекомендуется проверить его корректность. Если проверка не пройдена — распакуйте файл, исправьте XML и соберите его заново:
python scripts/office/validate.py doc.docx
Файл из источника