Ya hay una respuesta a una pregunta relacionada con este tema: Complemento de Word ¿Obtener el texto completo del documento? Sin embargo, este método no puede extraer los indicadores/viñetas. ¿Hay alguna manera de que podamos hacer esto? Espero que el texto sea exactamente el mismo que select all manualmente y luego copy un documento de Word.
La razón detrás de esto: estoy creando un banco de preguntas a partir de un documento de Microsoft Word. Varias herramientas ofrecen extracción de texto, sin embargo, generalmente ignora la viñeta.
Uso palabras clave como A. B. C. D. etc. para detectar las opciones. Sin embargo, si el autor escribe opciones usando indicador/viñeta, este método falla.
Puede convertir las listas numeradas (párrafos de lista) en texto sin formato con una simple pieza de vba.
Ver aquí convertir listas a texto
Para cada párrafo del documento, puede identificar si se trata de un elemento de lista llamando a isListItem .
Si es así, puede llamar a listItem para obtener el elemento.
La propiedad listString en la clase Word.ListItem puede ayudarlo a obtener la viñeta, el número o la imagen del elemento de la lista como una cadena.
Aquí hay un ejemplo de cómo extraer las viñetas en el documento.
Word.run(async (context) => { var paragraphs = context.document.body.paragraphs; paragraphs.load("$none"); await context.sync(); for (let i = 0; i < paragraphs.items.length; i++) { paragraphs.items[i].load("isListItem"); paragraphs.items[i].load("text"); await context.sync(); if (paragraphs.items[i].isListItem) { paragraphs.items[i].load("listItem"); await context.sync(); console.log(paragraphs.items[i].listItem.listString + " " + paragraphs.items[i].text); } else { console.log(paragraphs.items[i].text); } } });El documento se imprime en la consola párrafo por párrafo con todas las viñetas retenidas.