Resaltar texto programáticamente en MS Word usando Java

¿Alguien puede decirme si es posible resaltar ciertas palabras (proporcionadas por números de página y números de línea) en un documento de Word (básicamente DOCX)? Mi opción principal es usar Java. Si hay alguna solución .Net para este problema, házmelo saber.

Gracias.

preguntado el 03 de mayo de 12 a las 12:05

Un .docx es básicamente un archivo xml dentro de un archivo zip, por lo que puede abrirlo y analizar manualmente el XML si no hay una biblioteca que lo haga por usted. -

Sí, lo he hecho. Pero, cuando abrí el XML del documento, no encontré ninguna etiqueta XML para llegar a una página específica o un número de línea específico. Mi intención es ir a un número de línea específico en una página específica y luego resaltar el contenido de esa línea. -

Encuentre la respuesta de stcakoverflow que se proporciona stackoverflow.com/questions/35419619/… -

3 Respuestas

No lo he encontrado en java sino en .NET

object missObj = Missing.Value;
            object path = @"D:\mydoc.docx";
            Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document doc = app.Documents.Open(ref path, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj);
            foreach (Microsoft.Office.Interop.Word.Range range in doc.Words)
            {
                if (range.Text.Trim() == "the text")
                {
                    range.HighlightColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkYellow;
                    range.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdWhite;
                }
            }

fuente: http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/9fba8427-8b3c-44f2-b19f-92eb5108693b/

contestado el 03 de mayo de 12 a las 12:05

Gracias por su respuesta. Lo revisaré y te responderé entonces. - rajshekhar

Probé el código de muestra y parece que solo resalta una palabra, no una cadena. Supongamos que proporciono "el texto" como , no resaltará la cadena en el documento. Pero, si proporciono "texto", se destaca. ¿Hay algo más que hacer? - rajshekhar

Sí, esto es posible en Java, pero probablemente necesite implementar esto a través de una tercera biblioteca, Apache POI es una buena opción, que es una API de Java para documentos de Microsoft, proporciona casi todas las funciones y características para manipular archivos DOC o DOCX fromat.

http://poi.apache.org/

¿Lo que quiso decir con "resaltar" es el color de fondo del párrafo y resaltar el color del texto? ¿O algo mas?

contestado el 03 de mayo de 12 a las 12:05

Investigué un poco sobre Apache POI anteriormente. Pero, no obtuve ninguna pista sobre cómo hacer el resaltado. En un nivel alto, quiero hacer lo siguiente: 1) Ir al número de página especificado, 2) Ir al número de línea especificado, 3) Resaltar la línea. ¿Es posible con PDI? Si es así, ¿puede proporcionar algún código ficticio? - rajshekhar

Quiero resaltar una línea (palabras en la línea para ser más precisos) en una página específica. - rajshekhar

Sí, al usar Apache POI, puede leer el DOC de Microsoft Word y puede realizar operaciones en ese DOC, como resaltar el texto, etc.

Respondido 17 Abr '18, 15:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.