onenote
667 TopicsOneNote - Inserting Code Blocks
Are there any plans for a way to format code blocks in OneNote without inserting a 1 column/row table or an ugly print out? The most relevant Google search brings up a post from 2018 where the top answer says its been requested on UserVoice and directs OP there, but 3 years later, still no code block formatting options and Microsoft isn't using UserVoice anymore so I don't where else I can submit feature requests besides this discussion board. Thanks!365KViews25likes28CommentsOneNote To Do tag changed to a radio button
After a recent update, the to-do tag still behaves like a checkbox but is styled as a radio control:. Here's why I say that. Some UI differences between radio and checkbox are: - Circle outlines convey a radio button control, and selection fills in most/all of the outline - Square outlines convey a checkbox control, and selection usually does not fill in the entire outline Radio controls are mutually exclusive by design (selecting one de-selects the others). They are not appropriate for a to-do list. I can get close to the original UI by customizing the tag, but not entirely: Is this bothering anyone else as much as me?161Views0likes2CommentsOneNote Interop API targets wrong window instance
C# with .NET Framework 4.8, Microsoft OneNote Open up two OneNote windows viewing the same page. From the second window, invoke an add-in command that uses the managed Interop API. Any queries or updates made by the API will target the first OneNote window instance, even while the second window instance is active and has focus. However, if the content of the page is manually modified from the second [active] window instance, then and only then will the API call target and update the page in the second window. Expectation is that the updated content will be visible immediately in the active OneNote window instance122Views0likes4CommentsOneNote Interop API UpdatePageContent changes lastModifiedTime of unmodified child elements
Using the Interop API, IApplication.UpdatePageContent(xml, lastModTime, XMLSchema.xs2013, true) Given a page with one Outline and two OE paragraphs where each OE paragraph was contributed by different authors on different dates. If any change is made to the Outline, such as appending a new OE, without modifying the existing OEs, then when the page is saved using UpdatePageContent, the lastModifiedTime attribute of all descendants of that Outline are updated to the current time. This results in losing information regarding when a particular author applied their changes. The expectation is that the EditedByAttributes (per 0336.OneNoteApplication_2013.xsd) of an OE should be preserved unless that OE's content has changed. Users who share notebooks often rely on the EditedByAttributes (who and when) for individual parts of a page to track independent changes. The current behavior loses that auditing capability. Note that this usage is based on https://learn.microsoft.com/en-us/office/client-developer/onenote/application-interface-onenote#updatepagecontent-method which explains: You must include page-level objects in the UpdatePageContent call The dateExpectedLastModified is nothing more than a pessimistic locking type of safe-guard and is not considered in any regard in relation to the lastModifiedTime attribute125Views0likes2CommentsOneNote Interop API UpdatePageContent breaks Spell Checking
Using the interop API, IApplication.UpdatePageContent(xml, lastModTime, XMLSchema.xs2013, true) Given a page with an OE paragraph, where the user selects a run of text, not including the end of the text, and the text contains spelling errors before, within, and after the selection range. When the proofing language is changed for the selected range, then the spelling errors after that range will no longer be highlighted as errors. Here is an example text run, before modification, with a selection range. Notice the word "benoyd" is misspelled and would be highlighted by OneNote. <one:OE alignment="left" quickStyleIndex="1" selected="partial"> <one:T><![CDATA[To ]]></one:T> <one:T selected="all"><![CDATA[infinity]]></one:T> <one:T><![CDATA[ and benoyd...]]></one:T> </one:OE> And after modification to change the language of the selected range: <one:OE alignment="left" quickStyleIndex="1"> <one:T><![CDATA[<span lang=en-US>To </span><span lang=yo>infinity</span><span lang=en-US> and benoyd...</span>]]></one:T> </one:OE> But the word "benoyd" is no longer highlighted as misspelled. The user can manually iterate through the text by interactively clicking the Review/Spelling button, causing OneNote to highlight the misspellings. Alternatively, if the user changes the proofing language of the selected range interactively using the Proofing Language panel, it results in exactly the same XML structure generated by OneNote natively, but OneNote retains the misspelling indicators. Making exactly the same changes to the XML using the UpdatePageContent API should result in the same behavior as using the UI.90Views0likes2CommentsFeature Request: Add Support for Merged Table Cells in OneNote Interop API XML Schema
I'm writing to request an enhancement to the OneNote Interop API — specifically, the ability to support merged table cells in the XML schema used by the UpdatePageContent method. With the recent addition of cell merging in OneNote for Microsoft 365, this feature has become essential for creating more flexible and visually organized tables. However, the current Interop API does not reflect this capability, and there is no documented support for attributes like colspan or rowspan in the XML schema. Why this matters: Developers cannot programmatically replicate merged cells created in the OneNote UI. I am the author of the OneMore add-in (github.com/stevencohn/OneMore). Automation and content generation tools are limited in their ability to produce rich, structured layouts. Imported tables with merged cells are automatically flattened, leading to data loss or formatting issues. Suggested enhancement: Extend the OneNote XML schema to include support for merged cells, possibly via new attributes or nested structures within <TD> elements. Update the documentation and SDK to reflect these changes and provide examples. This feature would greatly improve the fidelity of programmatic content creation and align the API with the capabilities of the OneNote client. Thank you for considering this request. I’d be happy to provide use cases or collaborate on testing if needed.99Views0likes4CommentsOneNote Interop API NavigateToUrl fails if called again too quickly
Using the Interop API, IApplication.NavigateToUrl(pageURL) Invoke once with a valid page URL, it succeeds Invoke again (within about two seconds) with a different valid page URL, it fails with COMException, HResult: 0x80042014 "The object does not exist" However, if you wait at least about three seconds in between calls, then it will always succeed. It doesn't matter whether the second page is in the same notebook or a different notebook. All notebooks tested here are synced to the cloud. It appears that NavigateToUrl causes the notebook to sync, because the OneNote notebook panel shows the sync glyph on top of the notebook icon and that is perhaps blocking subsequent interop APIs until completed? The IApplication instance is instantiated and disposed in a "using" block for each call30Views0likes0CommentsOneNote Interop API: Local paragraph style attributes not retained after UpdatePageContent
Summary: When using the OneNote COM Interop API to round‑trip page XML, local paragraph style attributes are removed if they match the font properties already defined in the referenced QuickStyleDef. After this normalization, the paragraph inherits the QuickStyleDef’s color, which can cause text to become unreadable if the QuickStyleDef uses a color that is not visible against the page background. Environment: C# / .NET Framework 4.8 OneNote for Microsoft 365 IApplication.UpdatePageContent / IApplication.GetPageContent XMLSchema.xs2013 Description: If a page contains a QuickStyleDef with a specific fontColor (for example, #FFFFFF) and a paragraph that references this QuickStyleDef also includes a local style attribute that duplicates only the font family and size (but does not specify a color), the following behavior occurs: The page XML is retrieved using GetPageContent. The same XML is sent back to OneNote using UpdatePageContent, either when creating a new page or updating an existing one. After the update, retrieving the page again shows that the local style attribute has been removed from the affected one:OE elements. Because the local style no longer provides a font color override, the paragraph inherits the QuickStyleDef’s color. If that color is not visible (e.g., white text on a white background), the paragraph appears blank even though the text is still present.Reproduction steps: Create a new page using CreateNewPage. Provide XML containing: A QuickStyleDef such as: <one:quickstyledef index="1" name="p" fontcolor="#FFFFFF" font="Calibri" fontsize="11.0"></one:quickstyledef> An Outline with an OE referencing this QuickStyleDef and containing a local style attribute that duplicates the font properties: <one:OE quickStyleIndex="1" style="font-family:Calibri;font-size:11.0pt"> <one:T>Example text</one:T> </one:OE> Call UpdatePageContent with the XML. Retrieve the page again using GetPageContent. Observed behavior: The returned XML no longer contains the style attribute on the OE element. All other attributes and elements are preserved. The paragraph now renders using the QuickStyleDef’s color. Expected behavior: Local style attributes that are present in the XML passed to UpdatePageContent should remain in the stored page XML, even if they duplicate properties from the QuickStyleDef, so that the effective formatting remains unchanged. Impact: Any tool that copies or rewrites page content through the Interop API may encounter unexpected formatting changes when OneNote normalizes style attributes. If the QuickStyleDef uses a color that is not visible, paragraphs may appear blank after round‑tripping through the API. Additional note: This behavior can also occur when updating an Outline that contains multiple OE elements. If one OE is modified and the entire Outline is resent, sibling OEs may also have their local style attributes normalized in the same way. If you want, I can also prepare a shorter version optimized for Q&A’s character limits or a developer‑focused version aimed at Office engineering.26Views0likes0Comments