Pergunta

Uma aplicação atualmente em desenvolvimento tem os requisitos para utilizar o MS Word para executar a verificação ortográfica em determinados textareas dentro do aplicativo.

Eu tenho atualmente Office 2007 (que é o escritório de 12 objetos COM).

A minha pergunta é, se eu adicionar no escritório 12 objetos que vai acontecer em caixas que têm o Office 2003? Esta é em relação a ambas as outras caixas de desenvolvimento, bem como os usuários finais.

Am I corrigir em acreditar que o resultado final será que as capacidades magia não estará disponível para os usuários? E se eu usasse um objeto Office 11 que isso significa que os usuários não seria capaz de executar as verificação ortográfica, se tiver o Office 07 instalado?

Foi útil?

Solução

Nós desistiu de tentar usar uma dependência em Word, como ambos têm versões diferentes instalada ou nenhuma instalação do Office em tudo! Em vez de optar por NetSpell .

Outras dicas

Eu estou supondo aqui, mas se é que você não pode usar o PIA 2007 (Primary Interop Assembly) com uma instalação 2003, você poderia tentar acessar a PIA via reflexão como eu ia adivinhar as chamadas que você quer não vai mudar entre os dois, e então ele não vai importa - você vai usar o que está instalado. Se você estiver instalando o PIA, bem, você pode então obter o usuário a dizer-lhe que eles têm, ou ser um pouco mais inteligente e apenas tentar de 2007 e, se falhar, tente de 2003.

Como eu disse, eu estou supondo aqui, mas pode valer a pena uma tentativa.

EDIT: Eu encontrei este ligação sobre escritório PIA é. Este refere-se a Excel, mas na verdade abrange escritório em geral. Não invejo a tarefa que você tem. Parece que você vai precisar para detectar a PIA (que pode ou não pode ser instalada) e agir em conformidade. Soa como um trabalho de reflexão para mim.

As versões mais recentes do Office irá manter a maioria, se não todos compatibilidade com versões mais antigas do COM objetos. Ou seja, se você quiser programa contra Office 2003 e 2007 terá de usar o Office 11 objetos COM como uma dependência como eram o mais novo disponível quando 2003 foi lançado. Contanto que você verifique se os métodos que você precisa existir duas versões do COM objetos que você não deve ter problemas, enquanto você usar os objetos COM mais velhos.

Infelizmente, apesar de eu ter usado essa solução para o meu próprio trabalho, eu não testei com verificação ortográfica. No final, certifique-se de testar seu código com toda a versão do Office que você deseja integrar.

A minha reação instintiva a esta pergunta, é simplesmente sugerir que você vá outra rota. Tente usar um controle de verificação ortográfica 3rd party. Eles são relativamente baratos (e você pode encontrar alguns controles livres). Pelo menos dessa forma você pode controlar a versão do controle incluído no seu aplicativo e ser capaz de confiar nele de funcionalidade. Francamente, estou surpreso esta biblioteca não é construído em Windows já. Claro que é complicado com todos os suportes de idiomas do Windows, mas nos dias de hoje é semelhante ao copiar / colar em termos de expectativas dos usuários.

Você pode realmente embalar tanto a office11 e office12 interops necessárias para trabalhar em ambas as versões. É preciso algum trabalho menor, mas eu consegui fazê-lo. I fazer uma verificação no registro para ver qual interoperabilidade para chamar e, em seguida, executa a verificação ortográfica com a versão correta. Ele ainda vai tão longe como para verificar se você tem o Word instalado e lança um alerta de erro que você não pode soletrar cheque sem ter Palavra. Estamos vinculados a usar o Word devido ao dicionário médico que está amarrado em escritório estamos obrigados a usar.

Faça uma pesquisa no interoperabilidade ou COM wrappers e eu acho que você vai achar que você pode usar tanto com bastante facilidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top