2010-02-16 11 views
8

Come posso leggere parola per parola (con gli stili) da un file docx. Voglio confrontare due file docx parola per parola e in base alle differenze che devo scrivere in un altro file docx (usando C# e OOXML). Ho provato il raggiungimento di questo utilizzando DocumentFormat.OpenXml.Extensions.dll, OpenXMLdiff.dll e ICSharpCode.SharpZipLib.dll ma nulla mi sta dando la possibilità di leggere parola per parola (ICSharpCode.SharpZipLib fa dare parola per parola ma non darà lo stile associato a quella parola).Confronto dei file Docx usando OOXML

Qualsiasi aiuto su questo sarà molto utile.

risposta

0

Il modo più semplice è decomprimere il file DOCX utilizzando la libreria ZIP preferita e quindi confrontare i file di testo con una libreria di file IO.

3

Questo articolo MSDN mostra come recuperare in modo affidabile il testo esatto di un documento, paragrafo per paragrafo.

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

Allo stesso tempo, è possibile determinare lo stile per ogni paragrafo. È abbastanza facile Il seguente post sul blog mostra come recuperare lo stile e il testo per ogni paragrafo:

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

Confrontando i due? Dipende dalla tua esatta semantica desiderata. Un approccio sarebbe quello di creare un documento XML che contiene paragrafi e stili, quindi confrontare i documenti XML. Il documento XML potrebbe essere qualcosa del genere:

<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> 
Problemi correlati