Crie uma macro do ONLYOFFICE para substituir palavras em suas apresentações
Existem vários casos ao fazer uma apresentação em que precisamos alterar todas as ocorrências de uma palavra específica. As correções manuais podem consumir muito tempo, especialmente se você tiver muitos slides para trabalhar. Para facilitar esse processo, construiremos uma macro para substituir uma palavra específica no Editor de Apresentação.
Construindo a Macro
const oPresentation = Api.GetPresentation(); //get the current presentation
Primeiro, obtemos a apresentação atual na variável oPresentation.
for (
var slideIndex = 0;
slideIndex < oPresentation.GetSlidesCount();
slideIndex++
) {
Esta macro envolve loops for aninhados. Neste primeiro loop for, iteramos por todos os slides da apresentação.
var oSlide = oPresentation.GetSlideByIndex(slideIndex);
var aShape = oSlide.GetAllShapes(); //get all the shapes from different slides
Essas linhas obtêm todas as formas que podem estar presentes em um slide específico e colocam seus detalhes na matriz aShape.
for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) {
var content = aShape[shapeIndex].GetDocContent();
Neste segundo loop for, obtemos o conteúdo de cada forma em uma planilha específica.
if (content) {
var count = content.GetElementsCount();
for (var elementIndex = 0; elementIndex < count; elementIndex++) {
var element = content.GetElement(elementIndex);
Garantimos que a variável content existe e obtemos a contagem de todos os elementos presentes in content.
if (element) {
const rawText = element.GetText(); //gets the text from a particular element
element.Delete(); //delete the content
const wordToFind = "apple"; // Replace "apple" with the word you want to find
const replacementWord = "banana"; // Replace "banana" with the word you want to replace it with
const cleanedText = rawText.replace(
new RegExp(wordToFind, "g"),
replacementWord
);
Primeiro, certificamo-nos de que o elemento variável é válido. Se o elemento existir, copiamos o texto original e excluímos o conteúdo usando o método element.delete(). Em seguida, especificamos a palavra a ser substituída e a palavra substituta em suas respectivas variáveis, e realizamos a substituição, armazenando o novo texto na variável cleanText.
var oParagraph = Api.CreateParagraph();
var oRun = Api.CreateRun();
oRun.AddText(cleanedText);
oParagraph.AddElement(oRun);
content.Push(oParagraph);
Finalmente, criamos um novo parágrafo e adicionamos o CleanText a ele. Após a configuração do elemento de parágrafo, nós o adicionamos novamente ao slide, substituindo aquele que havíamos excluído acima, usando o código acima.
Código de macro completo
Aqui está todo o código da macro:
(function () {
const oPresentation = Api.GetPresentation(); //get the current presentation
for (
var slideIndex = 0;
slideIndex < oPresentation.GetSlidesCount();
slideIndex++
) {
var oSlide = oPresentation.GetSlideByIndex(slideIndex);
var aShape = oSlide.GetAllShapes(); //get all the shapes from different slides
for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) {
var content = aShape[shapeIndex].GetDocContent();
// Check if content exists before proceeding
if (content) {
var count = content.GetElementsCount();
for (var elementIndex = 0; elementIndex < count; elementIndex++) {
var element = content.GetElement(elementIndex);
// Check if element is valid before using it
if (element) {
const rawText = element.GetText(); //gets the text from a particular element
element.Delete(); //delete the content
const wordToFind = "apple"; // Replace "apple" with the word you want to find
const replacementWord = "banana"; // Replace "banana" with the word you want to replace it with
const cleanedText = rawText.replace(
new RegExp(wordToFind, "g"),
replacementWord
);
//creates a new paragragh, and restores the content which was deleted, with the cleaned text.
var oParagraph = Api.CreateParagraph();
var oRun = Api.CreateRun();
oRun.AddText(cleanedText);
oParagraph.AddElement(oRun);
content.Push(oParagraph);
}
}
}
}
}
})();
Vamos executar nossa macro e ver os resultados!
Esperamos que esta macro tenha ajudado você e simplificado seu fluxo de trabalho de apresentação.
Não perca a chance de aproveitar o poder da API ONLYOFFICE. Nossa extensa biblioteca de métodos API é a chave para transformar suas ideias em realidade. Se você tiver alguma dúvida ou conceitos inovadores, encorajamos você a compartilhar conosco. Sua contribuição é altamente valorizada e estamos entusiasmados com a possibilidade de colaborar com você. Boa sorte em seus empreendimentos exploratórios!
Crie sua conta gratuita no ONLYOFFICE
Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.