Skip to main content

Защита диапазона текстового документа

Вы можете защитить от изменений диапазон текстового документа. Данные в таком диапазоне нельзя модифицировать до снятия защиты.

Используйте метод Range:lockContent() для установки защиты:


-- Защита первого абзаца документа:
local textRange = document:getRange():getBegin():getCurrentRange(DocumentAPI.TextUnit_Paragraph)
textRange:lockContent()

При попытке редактирования защищенного фрагмента возникает исключение DocumentModificationError:


local pos = textRange:getContentEnd():getPreviousPosition(10)
pos:insertText("My Text") -- DocumentModificationError

Чтобы определить, защищен ли диапазон документа, используйте метод Range:isContentLocked(). Он возвращает true, если текущий диапазон защищен целиком или содержит защищенные фрагменты:


print(textRange:isContentLocked()) -- true
print(document:getRange():isContentLocked()) -- true

Для снятия защиты, вызовите метод Range:unlockContent() защищенного фрагмента или диапазона текста, который его содержит:


textRange:unlockContent()
-- или
document:getRange():unlockContent()

Также вы можете снять защиту только с части диапазона:


-- Снятие защиты с последнего предложения защищенного абзаца:
textRange:getContentEnd():getPreviousRange(DocumentAPI.TextUnit_Sentence):unlockContent()