Request for Information About Loop Components in OneNote Files

Hello dear Aspose Team,

We recently discovered that OneNote files can contain embedded Loop components. These components do not seem to function locally without authentication. However, we noticed that modifying and re-uploading the file causes these Loop components to disappear.

Here is a sample file containing a Loop component:

https://files.axiomint.com/external/file/us16zc99f41e1744c42efa5bbe75fa131f74b

Here is the code that we are using

foreach (var page in document)
{
    IList<RichText> richTexts = page.GetChildNodes<RichText>();
    foreach (RichText richText in richTexts)
    {
        foreach (var textRun in richText.TextRuns)
        {
            ProcessTextRunLink(textRun);
        }
    }
}

....

private void ProcessTextRunLink(TextRun textRun)
{
    var textStyle = textRun.Style;
    if (!textStyle.IsHyperlink || string.IsNullOrWhiteSpace(textStyle.HyperlinkAddress))
    {
        return;
    }

    string linkPath = textStyle.HyperlinkAddress;
    string linkText = textRun.Text;

    this.AddLinkWithAction(linkPath, linkText, result =>
    {
        textStyle.HyperlinkAddress = result.UpdatedLinkPath;
        textRun.Text = result.UpdatedLinkText;
    });
}

We have the following questions:

  1. Is it possible to expose a property (either on the document or page level) to indicate if it contains Loop components? This would allow us to handle such files cautiously and avoid modifications.
  2. Can we retrieve a list of Loop components (along with their URLs) from the document or page?

More information about Loop components can be found in this Microsoft Support article.

P.S. We have also come across a similar feature request for the Aspose.Words product family: Insert Microsoft Loop Components in Word. While we do not require functionality to insert Loop components, we would like the ability to identify them in file types where they can be added.

@vahem

Can you please clarify which specific Aspose product you are using to manipulate OneNote files? Additionally, could you provide more details on the expected behavior when handling Loop components?

Thanks for the quick reply. We are currently using Aspose.Note 24.11 (for .NET).

The behavior we would appreciate is as follows:

  1. A property that indicates whether the file contains loop components, or if possible, a method to retrieve a list of all loop components along with their associated URLs.
  2. Ensuring that opening and saving the file with Aspose.Note does not break or remove existing loop components in the file.

@vahem,

Thanks for the sample document and details.

It seems Aspose.Note may not support embedded Loop components, so the components would not be retained in the output document when processed by the API.

We require to evaluate the issue in details. We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): NOTENET-5857

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

@vahem,

We have scheduled an investigation regarding Loop components in OneNote files. The research will evaluate whether it is feasible to:

  • Expose a property indicating the presence of Loop components.
  • Retrieve a list of these components and their associated metadata (e.g., URLs).

Once the research is complete, we will provide an update with a more precise assessment of what can be implemented in Aspose.Note.

Please stay tuned!

1 Like

@amjad.sahi Thanks a lot. Looking forward to it.

@vahem,

You are welcome. Have a good day!

@vahem,

The research on Microsoft Loop components in OneNote files has been completed. Two separate tasks have been created:

  1. To support retrieving information about Loop components, including their URLs (Internal Ticket ID: “NOTENET-5861”).
  2. To ensure that Loop components aren’t removed or lost after modifying or re-saving the file (Internal Ticket ID: “NOTENET-5862”).

These tasks will be addressed according to their respective priorities. We will provide updates on the progress as soon as they become available.

1 Like