OneNoteをCOMで使う3回目 - 新日々此何有哉
ノートブックのアクセスができることはわかったので、次は各ページのコンテンツを取得してみます。Windows + Sキーで採取したハードコピーは落書きノートに入ることがわかっています。余談ですが、私はWindows Clippingsで撮ったハードコピーもOneNoteに送っています。
では、落書きノートはどうやって探すのでしょう?XMLを見るとノードのなかの
String strXML = default(string); onApplication.GetHierarchy(null, HierarchyScope.hsPages, out strXML); var oneNoteXML = XDocument.Parse(strXML); XNamespace oneNoeteIns = "http://schemas.microsoft.com/office/onenote/2007/onenote"; var noteBooks = from p in oneNoteXML.Root.Elements(oneNoeteIns + "UnfiledNotes").Elements(oneNoeteIns + "Section").Elements() select p;
んで、MSDNによると、GetPageContentかGetBinaryPageContentを使えばよさそうです。
string pageID = default(string); string pageXmlOut = default(string); foreach (var book in noteBooks){ pageID = (string) book.Attribute("ID"); onApplication.GetPageContent(pageID, out pageXmlOut, PageInfo.piAll); }
ハードコピーがページ単位に入っているので、png画像しかないとわかっていますが、とりあえずGetPageContentで取得すると、第二引数にXML形式でこんなデータが取得できます。