是否存在能够以编程方式从Microsoft Onenote 文档中提取信息的 PHP/Ruby 库或 Web 服务?
该解决方案将在 Web 应用程序后端实现。
我不是在寻找特定于 Windows 的解决方案。此外,我不是在寻找需要用户下载应用程序扩展或可安装软件的解决方案。
是否存在能够以编程方式从Microsoft Onenote 文档中提取信息的 PHP/Ruby 库或 Web 服务?
该解决方案将在 Web 应用程序后端实现。
我不是在寻找特定于 Windows 的解决方案。此外,我不是在寻找需要用户下载应用程序扩展或可安装软件的解决方案。
这是一个跨平台的单音符解析器。(.one -> .html) 它非常原始,但它是开源的,可能会让你继续前进
https://github.com/dropbox/onenote-parser 以帮助您解析文件格式。
随意使用它(apache许可证)
您可以使用 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。
我希望这适合您的需求。
最好的办法是学习如何在 PHP/Ruby 中进行 XML 解析并分析 OneNote 文档以了解它们的结构。一旦找出 .one 文件,就可以使用 PHP 从中提取所需的信息。看看这个链接,可能对你有帮助。