Como faço para renderizar um documento do Word (.doc, .docx) no navegador usando JavaScript?

Eu fiz o código com sucesso para exibir um arquivo PDF no navegador em vez da checkbox de diálogo “Abrir / Salvar”. Agora, estou preso tentando exibir um documento do Word no navegador. Eu quero exibir um documento do Word no Firefox, IE7 +, Chrome etc.

Alguém pode ajudar? Estou sempre recebendo a checkbox de diálogo “Abrir / Salvar” enquanto exibe o documento do Word no navegador. Eu quero implementar essa funcionalidade usando JavaScript.

Atualmente, nenhum navegador tem o código necessário para processar documentos do Word e, até onde eu saiba, não há bibliotecas do lado do cliente que existam atualmente para renderizá-los.

No entanto, se você precisar exibir apenas o Documento do Word, mas não precisar editá-lo, poderá usar o Visualizador dos Documentos do Google por meio de um para exibir um .doc / .docx hospedado remotamente.

  

Solução adaptada de ” Como exibir um documento do Word usando o fancybox “.

Exemplo:

JSFiddle

No entanto, se você preferir suporte nativo, na maioria, senão em todos os navegadores, recomendo salvar novamente o .doc / .docx como um arquivo PDF. Esses também podem ser processados ​​independentemente usando o PDF.js da Mozilla.

Editar:

Muito obrigado ao fatbotdesigns por postar o visualizador do Microsoft Office 365 nos comentários.

  

Mais uma advertência importante a ter em mente, como apontado por lightswitch05 , é que isso fará o upload do seu documento para um servidor de terceiros. Se isso for inaceitável, esse método de exibição não é o curso correto de ação.

Exemplos ao vivo:

Google Docs Viewer

Visualizador do Microsoft Office

As respostas de Brandon e fatbotdesigns estão corretas, mas tendo implementado a pré-visualização do Google docs, encontramos vários arquivos .docx que não puderam ser manipulados pelo Google. Mudou para a visualização do MS Office Online e funciona como um encanto.

Minha recomendação seria usar o URL de visualização do MS Office em vez do Google.

 https://view.officeapps.live.com/op/embed.aspx?src=http://remote.url.tld/path/to/document.doc' 

Parece haver algumas bibliotecas js que podem manipular .docx (não .doc) para conversão em html do lado do cliente (em nenhuma ordem particular):

Nota: Se você está procurando a melhor maneira de converter um arquivo doc / docx no lado do cliente, provavelmente a resposta é não fazê-lo . Se você realmente precisa fazer isso, faça isso do lado do servidor, ou seja, com libreoffice no modo headless, apache-poi ou qualquer outra biblioteca que funcione melhor para você.

O ViewerJS é útil para visualizar / incorporar o formato openoffice como odt, odp, ods e também pdf.

Para documento openoffice / pdf incorporado

  

/ViewerJS/ é o caminho do ViewerJS

#../demo/ohm2013 é o caminho do seu arquivo que deseja incorporar

Eu acho que tenho uma ideia. Isso também tem feito o meu maluco e ainda estou tendo problemas para exibi-lo no Chrome.

Salvar documento (name.docx) na palavra como página da web de arquivo único (name.mht) Em seu uso de html

  

Altere as alturas e larguras como achar melhor.

Se você quisesse pré-processar seus arquivos DOCX, em vez de esperar até o tempo de execução, você poderia convertê-los em HTML primeiro usando uma API de conversão de arquivos, como Zamzar . Você poderia usar a API para converter programaticamente de DOCX para HMTL, salvar a saída em seu servidor e, em seguida, servir esse HTML para seus usuários finais.

A conversão é bem fácil:

 curl https://api.zamzar.com/v1/jobs \ -u API_KEY: \ -X POST \ -F "source_file=@my.docx" \ -F "target_format=html5" 

Isso removeria quaisquer dependencies de tempo de execução nos serviços do Google e da Microsoft (por exemplo, se eles estivessem inoperantes ou se você fosse limitado por eles).

Ele também tem o benefício que você poderia estender para outros tipos de arquivos se você quisesse (PPTX, XLS, DOC etc)