Skip to main content
This page explains how to insert, read, and modify TextBox data in NOTE, covering three APIs:
  • Insert a TextBox: PluginNoteAPI.insertText
  • Get lasso TextBox elements: PluginNoteAPI.getLassoText
  • Modify a lasso TextBox: PluginNoteAPI.modifyLassoText

Insert a TextBox

Call insertText to insert a TextBox into the current page and current layer of the currently opened note. Make sure the note is opened and the current page is loaded; otherwise it returns an error.
import { PluginNoteAPI } from 'sn-plugin-lib';

/**
 * Insert a TextBox into the current page and current layer of the currently opened note.
 */
async function insertTextBox() {
  const textBox = {
    textContentFull: 'Hello Supernote',// TextBox content
    textRect: { left: 100, top: 120, right: 480, bottom: 220 },
    fontSize: 36,      // Font size
    textAlign: 0,      // 0: left, 1: center, 2: right
    textBold: 0,       // 0: normal, 1: bold
    textItalics: 0,    // 0: normal, 1: italic
    textFrameWidthType: 0, // Border width type: 0 fixed width, 1 auto width
    textFrameStyle: 0,     // Border style: 0 none, 3 stroke
    textEditable: 0,       // Editable state: 0 editable, 1 non-editable
  };

  const res = await PluginNoteAPI.insertText(textBox);
  console.log('insertText:', res);
}
textRect must be a non-zero-area rectangle (right > left and bottom > top), otherwise it throws a parameter error.

Get Lasso TextBox Elements

Call getLassoText to get TextBox data in the current lasso selection.
import { PluginNoteAPI } from 'sn-plugin-lib';

/**
 * Get the list of TextBox elements in the current lasso selection.
 */
async function readLassoText() {
  const res = await PluginNoteAPI.getLassoText();
  if (!res.success) {
    console.error('getLassoText error:', res.error);
    return;
  }
  const list = res.result ?? [];
  console.log('lasso text list:', list);
}
You must create a lasso selection before calling this API; otherwise it returns an error. If there are no TextBox elements in the lasso selection, the returned array is empty.

Modify a Lasso TextBox

Call modifyLassoText to modify the TextBox selected by the current lasso selection.
import { PluginNoteAPI } from 'sn-plugin-lib';

/**
 * Modify a single TextBox selected by lasso.
 */
async function updateLassoText() {
  // First get the lasso-selected TextBox
  const res = await PluginNoteAPI.getLassoText();
  if (!res.success || !res.result || res.result.length !== 1) {
    console.error('You must lasso-select exactly one TextBox to modify it');
    return;
  }

  const tb = res.result[0];
  tb.textContentFull = 'Updated content';
  tb.textRect = { left: 100, top: 120, right: 520, bottom: 240 };

  const mod = await PluginNoteAPI.modifyLassoText(tb);
  console.log('modifyLassoText:', mod);
}
You must ensure the lasso selection contains exactly one TextBox; otherwise the modification will fail. Calling it with no lasso selection or multiple TextBox elements returns an error.