Простое решение
Вы можете легко написать свою собственную утилиту извлечения на 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 .
Надеюсь, это соответствует вашим потребностям.