2016-07-29 2 views
1

Как говорится в названии, я пытаюсь создать дополнение OneNote, которое просто добавляет текст на текущую страницу (в приложение OneNote Desktop).Как вы получаете текущую страницу? [Попытка создать простой OneNote Addin, который добавляет текст на текущую страницу]

Я просмотрел API, и я мог добавить текст в XML-страницы, а затем обновить страницу с помощью UpdatePageContent() ... но я не вижу ничего, чтобы дать вам страницу, на которой вы сейчас находитесь смотря на?

Прошу прощения, если это очевидно, или если есть способ просто отредактировать страницу без необходимости использования API ... Я провел несколько дней, исследуя примеры OneNote Addin, но только на самом деле смог получить кнопка, показывающая в ленте!

Любые советы или рекомендации были бы весьма признательны.

ответ

0

Ответ, если вы используете настольную версию OneNote является следующее:

string thisNoteBook = oneNote.Windows.CurrentWindow.CurrentNotebookId; 
string thisSection = oneNote.Windows.CurrentWindow.CurrentSectionId;  
string thisPage = oneNote.Windows.CurrentWindow.CurrentPageId; 

Это даст вам идентификаторы текущей страницы, оттуда вы можете использовать

oneNote.GetPageContent(thisPage, out xmlPage); 

или

oneNote.GetHierarchy(thisNoteBook, HierarchyScope.hsSections, out HieracyXML); 

т.д.


Если кто читает это нуждается в какой-либо дальнейшей помощи просто отправить мне сообщение.

1

Вот как вы получаете активную страницу.

OneNote.run(function (context) { 

    // Get the active page. 
    var page = context.application.getActivePageOrNull(); 

    // Queue a command to load the page. 
    // For best performance, request specific properties.   
    page.load('id,title'); 

    // Run the queued commands, and return a promise to indicate task completion. 
    return context.sync() 
     .then(function() { 

      if (!page.isNull) { 
       // Show some properties. 
       console.log("Page title: " + page.title); 
       console.log("Page ID: " + page.id); 
      } 
     }); 
}) 
.catch(function(error) { 
    console.log("Error: " + error); 
    if (error instanceof OfficeExtension.Error) { 
     console.log("Debug info: " + JSON.stringify(error.debugInfo)); 
    } 
}); 

https://github.com/OfficeDev/office-js-docs/blob/master/reference/onenote/application.md#getactivepageornull

А вот пример, чтобы добавить содержимое в активной страницы:

OneNote.run(function (context) { 

    // Gets the active page. 
    var page = context.application.getActivePage(); 

    // Queue a command to add an outline with given html. 
    var outline = page.addOutline(200, 200, 
"<p>Images and a table below:</p> \ 
<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\"> \ 
<img src=\"http://imagenes.es.sftcdn.net/es/scrn/6653000/6653659/microsoft-onenote-2013-01-535x535.png\"> \ 
<table> \ 
    <tr> \ 
    <td>Jill</td> \ 
    <td>Smith</td> \ 
    <td>50</td> \ 
    </tr> \ 
    <tr> \ 
    <td>Eve</td> \ 
    <td>Jackson</td> \ 
    <td>94</td> \ 
    </tr> \ 
</table>"  
     ); 

    // Run the queued commands, and return a promise to indicate task completion. 
    return context.sync() 
     .catch(function(error) { 
      console.log("Error: " + error); 
      if (error instanceof OfficeExtension.Error) { 
       console.log("Debug info: " + JSON.stringify(error.debugInfo)); 
      } 
     }); 
}); 
+0

О, спасибо большое! Я дам это позже :) –

+0

Хорошо ... Так что это был не тот ответ, который мне нужен, потому что для веб-приложения OneNote это не рабочий стол, но я все равно нашел то, что хотел. Мне нужен был метод, скрытый в части Windows объекта OneNote.Application. –

Смежные вопросы