10

是否存在能够以编程方式从Microsoft Onenote 文档中提取信息的 PHP/Ruby 库或 Web 服务?

该解决方案将在 Web 应用程序后端实现。

我不是在寻找特定于 Windows 的解决方案。此外,我不是在寻找需要用户下载应用程序扩展或可安装软件的解决方案。

4

3 回答 3

4

这是一个跨平台的单音符解析器。(.one -> .html) 它非常原始,但它是开源的,可能会让你继续前进

https://github.com/dropbox/onenote-parser 以帮助您解析文件格式。

随意使用它(apache许可证)

于 2017-03-11T07:41:41.017 回答
2

简单的解决方案

您可以使用 Microsoft.Office.Interop.OneNote API 在 C# 中轻松编写自己的提取器实用程序。

您可以在这篇 msdn 文章中找到详细的演练,然后您可以使用类似于此的代码访问内容:

using System;
using System.Linq;
using System.Xml.Linq;
using Microsoft.Office.Interop.OneNote;

class Program
{
  static void Main(string[] args)
  {
    var onenoteApp = new Application();

    string notebookXml;
    onenoteApp.GetHierarchy(null, HierarchyScope.hsPages, out notebookXml);

    var doc = XDocument.Parse(notebookXml);
    var ns = doc.Root.Name.Namespace;
    var pageNode = doc.Descendants(ns + "Page").Where(n => 
      n.Attribute("name").Value == "Test page").FirstOrDefault();
    if (pageNode != null)
    {
      string pageXml;
      onenoteApp.GetPageContent(pageNode.Attribute("ID").Value, out pageXml);
      Console.WriteLine(XDocument.Parse(pageXml));
    }
  }
}

您可以在此处阅读 api 文档,其中还包含一些示例。

低级方法

如果您的环境不允许使用这个官方库,那么我不知道 unix 端口,但 Office 文档以 XML 格式存储。您只需要一个 XML 解析器来提取您需要的信息。这里有OneNote 格式规范。(顶部有一个指向最新更新的 pdf 链接)然后您可以使用您选择的解析器并创建您的小实用程序。我对 ruby​​ 的建议是libxml

我希望这适合您的需求。

于 2012-11-10T13:36:33.023 回答
0

最好的办法是学习如何在 PHP/Ruby 中进行 XML 解析并分析 OneNote 文档以了解它们的结构。一旦找出 .one 文件,就可以使用 PHP 从中提取所需的信息。看看这个链接,可能对你有帮助。

于 2012-09-17T17:24:56.563 回答