Domanda

Un'applicazione attualmente in sviluppo ha i requisiti per l'utilizzo di MS Word per eseguire il controllo ortografico su determinate aree di testo all'interno dell'applicazione.

Al momento ho Office 2007 (che è l'oggetto COM di Office 12).

La mia domanda è: se aggiungo negli oggetti di Office 12 cosa accadrà sulle scatole con Office 2003? Questo vale sia per le altre caselle di sviluppo che per gli utenti finali.

Sono corretto nel ritenere che il risultato finale sarà che le capacità dell'incantesimo non saranno disponibili per quegli utenti? E se usassi un oggetto Office 11, ciò significherebbe che gli utenti non sarebbero in grado di eseguire i controlli ortografici se hanno Office 07 installato?

È stato utile?

Soluzione

Abbiamo rinunciato a provare a utilizzare una dipendenza da Word, poiché entrambe hanno versioni diverse installate o nessuna installazione di Office! Invece optando per NetSpell .

Altri suggerimenti

Sto indovinando qui, ma se è come non puoi usare il PIA (Primary Interop Assembly) del 2007 con un'installazione del 2003, potresti provare ad accedere al PIA tramite la riflessione poiché immagino che le chiamate che desideri non lo faranno cambia tra i due, e poi non importa - utilizzerai qualunque sia installato. Se stai installando anche PIA, puoi far sì che l'utente ti dica quali sono, oppure essere un po 'più intelligente e provare solo il 2007 e, se fallisce, prova il 2003.

Come ho detto, sto indovinando qui, ma potrebbe valere la pena provarlo.

EDIT: ho trovato questo link su Office PIA's. Questo si riferisce a Excel, ma in realtà copre Office in generale. Non invidio il compito che hai. Sembra che dovrai rilevare il PIA (che può essere installato o meno) e agire di conseguenza. Mi sembra un lavoro di riflessione.

Le versioni più recenti di Office manterranno la maggior parte, se non tutta, la compatibilità con le versioni precedenti degli oggetti COM. Ciò significa che se si desidera programmare su Office 2003 e 2007, sarà necessario utilizzare gli oggetti COM di Office 11 come dipendenza poiché erano i più recenti disponibili al rilascio del 2003. Finché si verifica che i metodi necessari esistano entrambe le versioni degli oggetti COM, non si dovrebbero avere problemi finché si utilizzano gli oggetti COM più vecchi.

Sfortunatamente, sebbene abbia usato questa soluzione per il mio lavoro, non l'ho testata con Controllo ortografico. Alla fine, assicurati di testare il tuo codice con tutte le versioni di Office che desideri integrare.

La mia reazione istintiva a questa domanda, è semplicemente suggerire di intraprendere un'altra strada. Prova a utilizzare un controllo ortografico di terze parti. Sono relativamente economici (e potresti trovare alcuni controlli gratuiti). Almeno in questo modo puoi controllare la versione del controllo inclusa con la tua app ed essere in grado di fare affidamento sulla sua funzionalità. Francamente, sono sorpreso che questa libreria non sia già integrata in Windows. Certo, è complicato con tutte le lingue supportate da Windows, ma al giorno d'oggi è simile a copia / incolla in termini di aspettative degli utenti.

Puoi effettivamente impacchettare entrambi gli interoper di office11 e office12 necessari per funzionare in ENTRAMBE le versioni. Ci vuole un po 'di lavoro minore ma sono riuscito a farlo. Eseguo un controllo nel registro per vedere quale interoperabilità chiamare e quindi esegue il controllo ortografico con la versione corretta. Arriva persino a controllare se hai installato Word e genera un avviso di errore che non è possibile eseguire il controllo ortografico senza avere Word. Siamo obbligati a utilizzare Word a causa del dizionario medico collegato a Office che dobbiamo utilizzare.

Fai una ricerca su wrapper Interop o Com e penso che scoprirai che puoi usarli entrambi abbastanza facilmente.

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