Библиотека / сервис для извлечения информации для документов Microsoft Onenote - PullRequest
9 голосов
/ 24 ноября 2011

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

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

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

Ответы [ 3 ]

3 голосов
/ 11 марта 2017

Вот кроссплатформенный парсер с одной нотой..бесплатно использовать его (лицензия Apache)

1 голос
/ 10 ноября 2012

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

Вы можете легко написать свою собственную утилиту извлечения на C #, используя Microsoft.Office.Interop.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 ссылка на последнее обновление) Затем вы можете использовать парсер по вашему выбору и создать свою маленькую утилиту. Мое предложение для ruby ​​будет libxml .

Надеюсь, это соответствует вашим потребностям.

0 голосов
/ 17 сентября 2012

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

...