1. 产品
  2.   Aspose.Note
  3.   Aspose.Note FOSS for Python

适用于 Python 的 Aspose.Note FOSS

从 Python 读取、遍历并导出 Microsoft OneNote (.one) 文件 — 免费且开源,无需 Microsoft Office。

开源 Python 库,用于 OneNote 文件

Aspose.Note FOSS for Python 是一个 100% 免费、MIT 许可证的库,允许您完全从 Python 读取 Microsoft OneNote (.one) 文件,无需 Microsoft Office、COM 自动化,也不需要专有运行时。它公开了一个简洁的公共 API(aspose.note.*),该 API 采用熟悉的 Aspose.Note for .NET 接口模型,并由用纯 Python 编写的内置 MS-ONE/OneStore 二进制解析器提供支持。

使用 pip install aspose-note 从 PyPI 安装(或使用 pip install "aspose-note[pdf]" 以启用 PDF 导出)。需要 Python 3.10 或更高版本。

该库适用于文档自动化脚本、内容索引管道、归档工具以及任何需要在不依赖 Microsoft Office 的情况下消费 OneNote 内容的服务器端工作流。有关企业产品系列,请参阅 Aspose.Note — Enterprise Product Family

读取并遍历 OneNote 文档

  • 加载 .one 文件: 通过 Document 从文件路径或二进制流打开任何 OneNote 部分。
  • 完整的 DOM 遍历: 导航 Document → Page → Outline → OutlineElement → RichText / Image / Table / AttachedFile
  • 富文本提取: 通过 RichText.Text 读取原始文本,或检查 TextRun 段落以获取粗体、斜体、字体、颜色和超链接元数据。
  • 表格解析: 遍历 Table → TableRow → TableCell 层次结构; 通过 TableColumn.Width 读取列宽。
  • 标签检查: 读取 NoteTag 元数据(shape, label, color, completion state)在文本、图像和表格节点上。

可以使用 Aspose.Note FOSS 的地方

  • 内容索引: 从 OneNote 存档中提取并索引所有文本,以用于搜索管道。
  • 文档迁移: 导出 OneNote 部分为 PDF、纯文本或结构化数据。
  • 归档工具: 将嵌入的图像和附件从 .one 文件保存到磁盘。
  • CI/CD workflows: 在 Docker 容器中验证或处理 OneNote 内容。
  • Knowledge-base pipelines: 从团队 OneNote 笔记本中提取结构化内容。

导出、图像和附件

  • PDF export: 将任何已加载的 Document 保存为 PDF,使用 Document.Save(path, SaveFormat.Pdf)。FOSS 版使用默认渲染;此版本不提供高级的每页 PDF 选项。
  • 图像导出: 遍历 Image 节点以检索原始字节 (Bytes)、文件名 (FileName) 和尺寸 (OriginalWidth, OriginalHeight)。
  • 附件保存: 迭代 AttachedFile 节点以将嵌入的文件附件保存到磁盘。
  • 基于流的加载: 从二进制流(例如 io.BytesIO)打开 .one 文件,而无需写入磁盘。

开发者体验

Aspose.Note FOSS 使用单个 pip install aspose-note 命令进行安装。基础包没有可选依赖;PDF 导出需要 ReportLab,通过 pip install "aspose-note[pdf]" 安装。

该 API 基于熟悉的 Aspose.Note 用于 .NET 接口进行建模:DocumentPageOutlineRichTextImageTableAttachedFile。该库采用 MIT 许可证,开源,并接受在 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)

常见问题

什么是用于 Python 的 Aspose.Note FOSS?

它是一个免费、MIT 许可证的 Python 库,用于读取 Microsoft OneNote (.one) 文件,无需 Microsoft Office、COM 自动化或任何专有运行时。

支持哪些 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 导出需要通过 [pdf] 额外安装的可选 ReportLab 依赖。

我可以从流中加载 .one 文件吗?

是的。Document 类接受二进制流(例如 io.BytesIO 或 HTTP 响应体),因此您可以在不写入磁盘的情况下处理文件。

需要哪个 Python 版本?

需要 Python 3.10 或更高版本。

我可以写入或修改 .one 文件吗?

不。当前版本为只读。它可以打开并解析任何有效的 .one 节段文件,但不支持写回 OneNote 二进制格式。

是否支持加密的 OneNote 文档?

不。加载受密码保护的 .one 文件会引发 IncorrectPasswordException。当前版本不支持加密文档。

我可以在哪里找到源代码?

该库采用 MIT 许可证,托管在 GitHub 上。欢迎提交错误报告和拉取请求。

  

支持和学习资源

 中文