Domanda

Come posso caricare il documento MS Word (.doc e .docx) in memoria (variabile) senza farlo ?:

wordApp.Documents.Open

Non voglio aprire MS Word, voglio solo quel testo dentro.

Mi hai dato una risposta per DOCX, ma per quanto riguarda DOC? Voglio una soluzione gratuita e ad alte prestazioni - non aprire 12.000 istanze di Word per elaborarle tutte. :( Aspose è un prodotto commerciale e 900 $ è troppo per quello che faccio.

È stato utile?

Soluzione

Puoi usare wordconv.exe che fa parte del pacchetto di compatibilità di Office per convertire da doc a docx.

http: // www .microsoft.com / downloads / Details.aspx FamilyID = 941b3470-3ae9-4aee-8f43-c6bb74cd1466 & amp;? displaylang = it

Basta chiamare il comando in questo modo: " C: \ Programmi \ Microsoft Office \ Office12 \ wordconv.exe " -oice -nme InputFile OutputFile

Non sono sicuro che sia necessario che Word sia installato per funzionare, ma funziona. Lo uso localmente come comando della shell di Windows per convertire i vecchi file di Office nel formato 2007 ogni volta che voglio.

Altri suggerimenti

Per i documenti Word in formato docx ho trovato questo interessante articolo su The CodeProject

Uso di DocxToText per estrarre testo da file DOCX

Nell'articolo l'autore discute di eliminare solo le parole stesse.

Per i tuoi Documenti Word (non docx) diversi dall'uso delle API di Office e (in background) che generano un'istanza di Word potresti provare a sborsare uno dei tanti convertitori Doc2Docx sul mercato e quindi applicare il sopra per entrambi.

Se hai a che fare con docx puoi farlo senza fare interoperabilità con Word Il file .docx in realtà un ZIP contiene un file XML, puoi leggere l'XML Si prega di fare riferimento ai collegamenti seguenti

http: / /conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html

Office (2007) Formati di file XML aperti

Di recente ho svolto alcune ricerche su questo argomento. Si scopre che per essere in grado di manipolare i file di parole a livello di codice senza aprire la stessa parola, sono necessari strumenti molto costosi.

C'è un articolo su progetto di codice sulla manipolazione di Word , potresti lo trova utile. L'autore crea un wrapper COM C # per gestire le chiamate a Word. Sembra che in realtà apra la parola application però.

Questo post sopra a anche i forum neowin sembrano promettenti. Comprende alcune chiamate PInvoked ai fini dell'estrazione del testo.

Forse se potessi trovare un modo per tenere nascosta la finestra sarebbe accettabile.

Aspose ha un componente per leggere, modificare e scrivere documenti Word. Ecco il link del prodotto: Aspose.Words per .NET e Java

  

Aspose.Words abilita .NET e Java   applicazioni da leggere, modificare e scrivere   Documenti Word® senza utilizzo   Microsoft Word®. Aspose.Words supporta   una vasta gamma di funzionalità tra cui   creazione di documenti, contenuti e   manipolazione della formattazione, posta potente   unisci abilità, supporto completo   di DOC, OOXML, RTF, WordprocessingML,   Formati HTML, OpenDocument e PDF.   Aspose.Words è davvero il massimo   economico, veloce e ricco di funzionalità   Componente Word sul mercato.

Con docxtemplater , puoi facilmente ottenere il testo completo di una parola (funziona solo con docx).

Ecco il codice (Node.JS)

DocxTemplater = require ( 'docxtemplater'); doc = new DocxTemplater (). loadFromFile (" input.docx "); risultato = doc.getFullText ();

Queste sono solo tre righe di codice e non dipendono da nessuna istanza di parola (tutto semplice JS)

Non intendo essere un antagonista, ma perché?

Ho estratto i dati da documenti Word su server Linux usando Word2X o AbiWord e, a seconda del numero e della varietà di documenti, ci saranno sempre errori con l'estrazione. È peggio ancora più punti elenco, interruzioni di pagina, sezioni del documento e altro "speciale" caratteristiche ci sono.

Comprendo che ora ci sono opzioni per automatizzare OpenOffice per elaborare i documenti, ma il mio consiglio è, se puoi, semplicemente usare Word per elaborare i documenti di Word.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top