Библиотека / служба для извлечения информации для документов Microsoft Onenote

существует ли библиотека PHP/Ruby или веб-служба, которая позволяет программно извлекать информацию из документы Microsoft Onenote?

решение должно быть реализовано в веб-серверных приложений.

Я не ищу конкретных решений для windows. Также я не ищу решения, которые требуют от пользователей загрузки расширений приложений или устанавливаемого программного обеспечения.

3 ответов


вот кросс-платформенный однопунктовый парсер. (.один. >- html) это довольно примитивно, но это с открытым исходным кодом и может заставить вас идти

https://github.com/dropbox/onenote-parser в случае, если это поможет вам проанализировать формат файла.

Не стесняйтесь использовать его (Лицензия apache)


простое решение

вы можете легко написать свою собственную утилиту extractor в C# с помощью Microsoft.Офис.Взаимодействие.В OneNote API-интерфейс.

вы можете найти подробное руководство в эта статья 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 на последнее обновление в верхней части) Затем вы можете использовать парсер по вашему выбору и создать свою маленькую утилиту. Мое предложение для Руби было бы libxml.

Я надеюсь, что это соответствует вашим по необходимости.


лучше всего научиться разбирать XML в PHP / Ruby и анализировать документы OneNote, чтобы выяснить, как они структурированы. Как только вы поймете .один файл, вы можете использовать PHP для извлечения из него необходимой информации. Проверка этой ссылка может помочь вам.