1. Продукты
  2.   Aspose.Note
  3.   Aspose.Note FOSS for Python

Aspose.Note FOSS для Python

Чтение, обход и экспорт файлов Microsoft OneNote (.one) из Python — бесплатно и с открытым исходным кодом, Microsoft Office не требуется.

Открытая библиотека Python для файлов OneNote

Aspose.Note FOSS для Python — это полностью бесплатная библиотека с лицензией MIT, позволяющая читать файлы Microsoft OneNote (.one) полностью из Python, без Microsoft Office, без автоматизации COM и без проприетарного runtime. Она предоставляет чистый публичный API (aspose.note.*), построенный по знакомому интерфейсу Aspose.Note для .NET, поддерживаемый встроенным бинарным парсером MS-ONE/OneStore, написанным на чистом Python.

Установите из PyPI с помощью pip install aspose-note (или pip install "aspose-note[pdf]" для включения экспорта в PDF). Требуется Python 3.10 или новее.

Библиотека подходит для скриптов автоматизации документов, конвейеров индексации контента, архивных инструментов и любых серверных рабочих процессов, которым необходимо обрабатывать содержимое OneNote без зависимости от Microsoft Office.

Чтение и обход документов OneNote

  • Загрузка .one файлов: Откройте любой раздел OneNote из пути к файлу или бинарного потока через Document.
  • Полный обход DOM: Перемещайтесь по Document → Page → Outline → OutlineElement → RichText / Image / Table / AttachedFile.
  • Извлечение форматированного текста: Читайте необработанный текст через RichText.Text или исследуйте сегменты TextRun для получения информации о жирном, курсиве, шрифте, цвете и гиперссылках.
  • Разбор таблиц: Обходите иерархии Table → TableRow → TableCell с указанием ширины столбцов и видимости границ.
  • Проверка тегов: Читайте метаданные NoteTag (форма, метка, цвет, состояние выполнения) у узлов текста, изображения и таблицы.

Где можно использовать Aspose.Note FOSS

  • Content indexing: Извлеките и проиндексируйте весь текст из архивов OneNote для поисковых конвейеров.
  • Document migration: Преобразуйте разделы OneNote в PDF, обычный текст или структурированные данные.
  • Archival tools: Сохраните встроенные изображения и вложения на диск из файлов .one.
  • CI/CD workflows: Проверять или обрабатывать содержимое OneNote внутри контейнеров Docker.
  • Knowledge-base pipelines: Извлекать структурированное содержимое из командных блокнотов OneNote.

Экспорт, изображения и вложения

  • PDF export: Сохраните любой загруженный Document в PDF, используя Document.Save(path, SaveFormat.Pdf).
  • PDF options: Настройте диапазон страниц, каталог значков тегов, размер значков и промежуток с помощью PdfSaveOptions.
  • Image export: Пройдите по узлам Image, чтобы получить необработанные байты, имя файла, размеры и альтернативный текст.
  • Attachment saving: Пройдите по узлам AttachedFile, чтобы сохранить вложенные файлы на диск.
  • Stream-based loading: Откройте файлы .one из бинарного потока (например, io.BytesIO) без записи на диск.

Опыт разработчика

Aspose.Note FOSS устанавливается одной командой pip install aspose-note. Базовый пакет не имеет необязательных зависимостей; экспорт в PDF требует ReportLab, устанавливается через pip install "aspose-note[pdf]".

API построен по знакомому Aspose.Note для интерфейса .NET: Document, Page, Outline, RichText, Image, Table, AttachedFile. Библиотека лицензирована по MIT, является open-source и принимает сообщения об ошибках и вклады на GitHub.

Загрузить файл OneNote и извлечь весь текст

Установите с помощью pip, затем передайте путь к файлу в Document(), чтобы разобрать двоичный формат OneNote. GetChildNodes(RichText) выполняет глубокий рекурсивный поиск и возвращает каждый текстовый узел в документе, что полезно для полнотекстового индексирования или миграционных конвейеров.

pip install aspose-note
from aspose.note import Document, RichText

doc = Document("notebook.one")
print(f"Страницы: {len(list(doc))}")

# Извлечь весь текст из всего документа
texts = [rt.Text for rt in doc.GetChildNodes(RichText) if rt.Text]
for text in texts:
    print(text)

Экспортировать в PDF и сохранить вложенные изображения

PDF экспорт требует опциональной зависимости ReportLab. Установите её с помощью pip install "aspose-note[pdf]". Тот же объект Document также можно итерировать по узлам Image, чтобы извлечь и сохранить все встроенные изображения на диск за один проход.

from aspose.note import Document, SaveFormat, Image
import pathlib

doc = Document("notebook.one")

# Экспортировать документ в PDF (требуется aspose-note[pdf])
doc.Save("output.pdf", SaveFormat.Pdf)

# Сохранить все встроенные изображения на диск
out_dir = pathlib.Path("images")
out_dir.mkdir(exist_ok=True)
for i, img in enumerate(doc.GetChildNodes(Image)):
    name = img.FileName or f"image_{i}.bin"
    (out_dir / name).write_bytes(img.Bytes)

Часто задаваемые вопросы

Что такое Aspose.Note FOSS для Python?

Это бесплатная библиотека Python с лицензией MIT для чтения файлов Microsoft OneNote (.one) без необходимости установки Microsoft Office, COM‑автоматизации или какого‑либо проприетарного runtime.

Какие варианты формата OneNote поддерживаются?

Варианты форматов OneNote 2010, OneNote Online и OneNote 2007. Любой корректный файл раздела .one может быть загружен.

Как установить его?

Выполните pip install aspose-note для базовой библиотеки или pip install "aspose-note[pdf]" чтобы добавить необязательную зависимость ReportLab для экспорта в PDF.

Могу ли я экспортировать файлы OneNote в PDF?

Да. Вызовите Document.Save(path, SaveFormat.Pdf). Для экспорта в PDF требуется установленная необязательная зависимость ReportLab через дополнительный пакет [pdf].

Могу ли я загрузить файлы .one из потока?

Да. Класс Document принимает бинарный поток (например, io.BytesIO или тело HTTP‑ответа), поэтому вы можете обрабатывать файлы без записи их на диск.

Какая версия Python требуется?

Требуется Python версии 3.10 или новее.

Могу ли я записывать или изменять файл .one?

Нет. Текущий выпуск доступен только для чтения. Он может открывать и разбирать любой действительный файл раздела .one, но запись обратно в двоичный формат OneNote не поддерживается.

Поддерживаются ли зашифрованные документы OneNote?

Нет. Загрузка защищённого паролем файла .one вызывает IncorrectPasswordException. Шифрованные документы не поддерживаются в текущем выпуске.

Где можно найти исходный код?

Библиотека лицензирована по MIT и размещена на GitHub. Сообщения об ошибках и запросы на включение изменений приветствуются.

  

Ресурсы поддержки и обучения

 Русский