2010-02-16 21 views
8

¿Cómo puedo leer palabra por palabra (con estilos) desde un archivo docx. Quiero comparar dos archivos de docx palabra por palabra y en función de las diferencias que tengo que escribir en otro archivo docx (usando C# y OOXML). He intentado lograr esto mediante el uso DocumentFormat.OpenXml.Extensions.dll, OpenXMLdiff.dll y ICSharpCode.SharpZipLib.dll pero nada me está dando la opción de leer palabra por palabra (ICSharpCode.SharpZipLib hace dar palabra por palabra, pero no dará el estilo asociado con esa palabra).Comparación de archivos Docx con OOXML

Cualquier ayuda sobre esto será muy útil.

Respuesta

0

La manera más fácil es simplemente descomprimir el archivo DOCX utilizando su biblioteca ZIP favorita y luego comparar los archivos de texto con una biblioteca IO de archivos.

3

Este artículo de MSDN muestra cómo recuperar de manera confiable el texto exacto de un documento, párrafo por párrafo.

http://msdn.microsoft.com/en-us/library/ff686712.aspx

Al mismo tiempo, se puede determinar el estilo de cada párrafo. Eso es bastante fácil. La siguiente entrada del blog muestra cómo recuperar el estilo y el texto de cada párrafo:

http://blogs.msdn.com/b/ericwhite/archive/2009/02/16/finding-paragraphs-by-style-name-or-content-in-an-open-xml-word-processing-document.aspx

Al comparar los dos? Depende de su semántica exacta deseada. Un enfoque sería crear un documento XML que contenga párrafos y estilos, y luego comparar los documentos XML. El documento XML podría verse más o menos así:

<Root> 
    <Para> 
    <Style>Normal</Style> 
    <Text>This is the text of the paragraph.</Text> 
    </Para> 
    <Para> 
    <Style>Heading1</Style> 
    <Text>Overview of the Process</Text> 
    </Para> 
</Root> 
Cuestiones relacionadas