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

fiz com sucesso o código para mostrar um ficheiro PDF no navegador em vez da janela "Abrir/gravar". Agora, estou preso a tentar mostrar um documento do Word no navegador. Quero mostrar um documento do Word no Firefox, IE7+, Chrome etc.

Alguém pode ajudar? Estou sempre a obter a janela "Abrir / gravar" ao mostrar a palavra doc no navegador. Quero implementar esta funcionalidade usando JavaScript.

Author: Mark, 2015-01-15

6 answers

[[8]} Nenhum browsers tem atualmente o código necessário para renderizar documentos do Word, e tanto quanto eu sei, não existem bibliotecas do lado do cliente que atualmente existem para renderizá-los também.

No entanto, se só precisar de mostrar o documento Word, mas não precisar de O editar, pode usar o Visualizador de documentos do Google através de um <iframe> para mostrar um servidor remoto .doc/.docx.

<iframe src="http://docs.google.com/gview?url=http://remote.url.tld/path/to/document.doc&embedded=true"></iframe>

Solução adaptada de " Como mostrar um documento word usando fancybox ".

Exemplo:

JSFiddle

No entanto, se preferirem ter apoio nativo, na maioria, se não todos os navegadores, recomendo que guardem o .doc/.docx como um arquivo PDF estes também podem ser independentemente renderizados usando PDF.js by Mozilla.

Editar:

Enorme obrigado a fatbotdesigns por postar o visualizador do Microsoft Office 365 nos comentários.

<iframe src='https://view.officeapps.live.com/op/embed.aspx?src=http://remote.url.tld/path/to/document.doc' width='1366px' height='623px' frameborder='0'>This is an embedded <a target='_blank' href='http://office.com'>Microsoft Office</a> document, powered by <a target='_blank' href='http://office.com/webapps'>Office Online</a>.</iframe>

Mais uma advertência importante para ter em mente, pois apontado por lightswitch05 , é que isto irá enviar o seu documento para um servidor de terceiros. Se isso é inaceitável, então este método de exibição não é o curso adequado de ação.

Exemplos Ao Vivo:

Visualizador De Docs Do Google

Visualizador De Microsoft Office

 139
Author: Brandon Anzaldi, 2017-10-09 22:23:52
As respostas do Brandon e do fatbotdesigns estão ambas correctas, mas tendo implementado a antevisão do Google docs, encontrámos várias .ficheiros docx que não podiam ser tratados pelo Google. Mudou para a antevisão Online do MS Office e trabalha gosta de um charme.

A minha recomendação seria usar o URL de antevisão do MS Office no Google.

https://view.officeapps.live.com/op/embed.aspx?src=http://remote.url.tld/path/to/document.doc' 
 19
Author: kernelmann, 2017-03-17 12:25:31
Parece haver algumas bibliotecas js que conseguem lidar .docx (não .doc) to html conversion client-side (in no particular order):

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

 4
Author: ccpizza, 2018-06-22 22:15:21

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

For embed openoffice / pdf document

<iframe src = "/ViewerJS/#../demo/ohm2013.odp" width='700' height='550' allowfullscreen webkitallowfullscreen></iframe>

/ViewerJS/ is the path of ViewerJS

#../demo/ohm2013 a localização do seu ficheiro deseja incorporar

 1
Author: NaveenDA, 2017-09-21 17:38:39
Acho que tenho uma ideia. Isto também me tem dado cabo da cabeça e ainda tenho dificuldade em mostrá-la no cromado.

Gravar o documento (nome.docx) no word como página web de arquivo único (nome.mht) No seu uso de html

<iframe src= "name.mht" width="100%" height="800"> </iframe>
Altera as alturas e as larguras como achares melhor.
 0
Author: Cai Esson, 2015-11-13 10:21:29

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

A conversão é muito fácil:

curl https://api.zamzar.com/v1/jobs \
-u API_KEY: \
-X POST \
-F "[email protected]" \
-F "target_format=html5"

Isto iria remover todas as dependências em tempo de execução dos serviços do Google & Microsoft (por exemplo, se estivessem em baixo, ou a sua taxa era limitada por eles).

Também tem o benefício que pode estender a outros tipos de Ficheiros se quiser (PPTX, XLS, DOC, etc)

 0
Author: Chris Whyley, 2017-11-10 11:19:40