window.Asc.plugin.executeCommand(type, command)

Description

Used to send the data back to the editor.

The second parameter is the JavaScript code for work with ONLYOFFICE Document Builder API, which allows the plugin to send structured data which can be inserted to the resulting document file (formatted paragraphs, tables, text parts and single words, etc.).

ONLYOFFICE Document Builder commands can be only used to create content and insert it to the document editor (using the Api.GetDocument().InsertContent(...)). This limitation is made due to the co-editing possibility in online editors. If you create a plugin for desktop editors working with local files, no such limitation is applied.
Parameters
Name Description Type
type The command type. The "close" is used to close the plugin window after executing the function in the command parameter. The "command" is used to execute the command and leave the window open, awaiting for the next command. string
command The command JavaScript code, which forms the structured data which can be inserted to the resulting document file (formatted paragraphs, tables, text parts and single words, etc.) to be sent to the editors. Must be compatible with ONLYOFFICE Document Builder syntax. string

When creating/editing OLE objects, two extensions are used to work with OLE objects:

  • Api.asc_addOleObject(window.Asc.plugin.info) - used to create an OLE object in the document;
  • Api.asc_editOleObject(window.Asc.plugin.info) - used to edit the created OLE object.

When you create/edit the objects, you can pass their properties to the window.Asc.plugin.info object which is responsible for how the object looks like.

Example text
window.Asc.plugin.init = function () {
    var sScript = 'var oDocument = Api.GetDocument();';
    sScript += 'oDocument.CreateNewHistoryPoint();';
    sScript += 'oParagraph = Api.CreateParagraph();';
    sScript += 'oParagraph.AddText(\'Hello word!\');';
    sScript += 'oDocument.InsertContent([oParagraph]);';
    window.Asc.plugin.info.recalculate = true;
    this.executeCommand("close", sScript);
};
Example OLE object
window.Asc.plugin.button = function (id) {
    var _info = window.Asc.plugin.info;
    var _method = (_info.objectId === undefined) ? "asc_addOleObject" : "asc_editOleObject";
    _info.width = _info.width ? _info.width : 70;
    _info.height = _info.height ? _info.height : 70;
    _info.widthPix = (_info.mmToPx * _info.width) >> 0;
    _info.heightPix = (_info.mmToPx * _info.height) >> 0;
    _info.imgSrc = window.g_board.getResult(_info.widthPix, _info.heightPix).image;
    _info.data = window.g_board.getData();
    var _code = "Api." + _method + "(" + JSON.stringify(_info) + ");";
    this.executeCommand("close", _code);
};