Elimina los espacios innecesarios con la macro de ONLYOFFICE
En el ámbito de la edición de texto, es esencial disponer de una macro eficaz que elimine los espacios innecesarios para aumentar la productividad y agilizar el flujo de trabajo. En esta entrada de blog, te mostraremos cómo crear una macro de ONLYOFFICE diseñada para eliminar los espacios innecesarios del texto seleccionado.
Creación de la macro
Empezamos con el acceso al documento activo y la captura del contenido seleccionado:
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const rawText = oRange.GetText();
A continuación, eliminamos el texto seleccionado. Más tarde se sustituirá por el texto formateado sin espacios adicionales:
oRange.Delete();
Dividimos el rawText en una matriz de párrafos basada en caracteres de nueva línea. Cada elemento de la matriz de párrafos representa un párrafo del texto original:
// Split the original word into an array of paragraphs based on newline characters
const paragraphs = rawText.split('\n');
A continuación, el bucle itera por cada párrafo de la matriz de párrafos y lo limpia sustituyendo los espacios en blanco consecutivos por un único espacio. Los párrafos limpiados se almacenan en la matriz cleanedParagraphs:
const cleanedParagraphs = [];
// Clean each paragraph and store it in the cleanedParagraphs array
for (const paragraph of paragraphs) {
// Use a regular expression to replace consecutive whitespaces with a single space
const cleanedParagraph = paragraph.replace(/\s+/g, ' ');
cleanedParagraphs.push(cleanedParagraph);
}
Después de limpiar cada párrafo, utilizamos el método join(‘\n’) para combinar los párrafos limpiados de nuevo en una sola cadena, donde cada párrafo limpiado está separado por un carácter de nueva línea (\n). Este paso es crucial porque al insertar texto en un documento, necesitamos proporcionar una única cadena con los saltos de párrafo apropiados:
// Join the cleaned paragraphs back together with newline characters
const cleanedText = cleanedParagraphs.join('\n');
Por último, creamos un nuevo párrafo (oParagraph) e insertamos el texto limpio en el documento. Este texto limpio contiene todos los párrafos limpiados combinados en una sola cadena, con caracteres de nueva línea para preservar la estructura original del párrafo:
// Insert the cleanedText with original paragraph structure
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(cleanedText);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
El código completo de la macro es el siguiente:
(function()
{
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const rawText = oRange.GetText();
oRange.Delete();
// Split the original word into an array of paragraphs based on newline characters
const paragraphs = rawText.split('\n');
// Create an array to store cleaned paragraphs
const cleanedParagraphs = [];
// Clean each paragraph and store it in the cleanedParagraphs array
for (const paragraph of paragraphs) {
// Use a regular expression to replace consecutive whitespaces with a single space
const cleanedParagraph = paragraph.replace(/\s+/g, ' ');
cleanedParagraphs.push(cleanedParagraph);
}
// Join the cleaned paragraphs back together with newline characters
const cleanedText = cleanedParagraphs.join('\n');
// Insert the cleanedText with original paragraph structure
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(cleanedText);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
})();
Vamos a ejecutar nuestra macro para ver cómo funciona:
Esperamos que esta macro sea una herramienta valiosa en tu kit de herramientas, agilizando tu productividad a nuevas alturas. Con las macros de ONLYOFFICE, puedes desbloquear el potencial para una mayor productividad, dándote acceso a soluciones eficientes y automatizadas.
Mientras exploras la creación de macros, no ignores las posibilidades que te ofrece la API de ONLYOFFICE. Si alguna vez tienes preguntas o ideas innovadoras, no dudes en compartirlas, ya sea a través de comentarios o contactando con nosotros. Siempre valoramos tus comentarios y nos entusiasma el potencial de nuestra colaboración. Te deseamos mucha suerte en tus esfuerzos exploratorios