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 — это 100% бесплатная библиотека с лицензией 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. Для семейства корпоративных продуктов см. Aspose.Note — Enterprise Product Family.

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

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

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

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

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

  • PDF export: Сохраните любой загруженный Document в PDF, используя Document.Save(path, SaveFormat.Pdf). В FOSS‑издании используется рендеринг по умолчанию; расширенные параметры PDF для каждой страницы недоступны в этом выпуске.
  • Image export: Переберите узлы Image, чтобы получить необработанные байты (Bytes), имя файла (FileName) и размеры (OriginalWidth, OriginalHeight).
  • Сохранение вложений: Итерация AttachedFile узлов для сохранения встроенных файлов вложений на диск.
  • Загрузка на основе потока: Откройте файлы .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"Pages: {len(list(doc))}")
# Extract all text across the entire document
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")

# Export the document to PDF (requires aspose-note[pdf])
doc.Save("output.pdf", SaveFormat.Pdf)

# Save all embedded images to disk
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?

Это бесплатная, MIT-licensed Python библиотека для чтения файлов 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. Сообщения об ошибках и запросы на включение изменений приветствуются.

  

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

 Русский