Подтвердить что ты не робот

Как сделать документ Word (.doc,.docx) в браузере с помощью JavaScript?

Я успешно выполнил код для отображения PDF файла в браузере вместо диалога "Открыть/Сохранить". Теперь я застреваю, пытаясь отобразить документ Word в браузере. Я хочу отобразить документ Word в Firefox, IE7 +, Chrome и т.д.

Может ли кто-нибудь помочь? Я всегда получаю диалог "Открыть/Сохранить" при отображении документа Word в браузере. Я хочу реализовать эту функциональность с помощью JavaScript.

4b9b3361

Ответ 1

Ни один браузер в настоящее время не имеет кода, необходимого для визуализации документов Word, и, насколько мне известно, в настоящее время не существует библиотек на стороне клиента для их рендеринга.

Однако, если вам нужно только отобразить документ Word, но не нужно редактировать его, вы можете использовать Средство просмотра документов Google через <iframe> для отображения удаленно размещенного .doc/.docx.

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

Решение адаптировано из " Как отобразить текстовый документ с помощью fancybox ".

Пример:

JSFiddle

Однако, если вы предпочитаете встроенную поддержку, в большинстве, если не во всех браузерах, я бы порекомендовал сохранить файл .doc/.docx в виде файла PDF. Они также могут быть независимо отрисованы с помощью PDF.js от Mozilla.

Редактировать:

Огромное спасибо fatbotdesigns за размещение средства просмотра Microsoft Office 365 в комментариях.

<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>

Еще один важный момент, о котором следует помнить, как указывает lightswitch05, заключается в том, что при этом ваш документ будет загружен на сторонний сервер. Если это неприемлемо, то этот метод отображения не является правильным курсом действий.

Живые примеры:

Google Docs Viewer

Средство просмотра Microsoft Office

Ответ 2

Ответы Brandon и fatbotdesigns верны, но, внедрив предварительный просмотр документов Google, мы обнаружили несколько файлов .docx, которые Google не смог обработать. Переключился на предварительный просмотр MS Office Online, и работам нравится очарование.

Моя рекомендация заключалась бы в использовании URL предварительного просмотра MS Office через Google.

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

Ответ 3

Кажется, есть некоторые библиотеки js, которые могут обрабатывать .docx (не .doc) в html-преобразование на стороне клиента (в произвольном порядке):

Примечание. Если вы ищете лучший способ конвертировать файл doc/docx на стороне клиента, то, вероятно, ответ - не делайте этого.Если вам действительно нужно это сделать, то сделайте это на стороне сервера, то есть с помощью libreoffice в режиме без головы, apache-poi (java), pandoc или любой другой библиотеки, которая лучше всего подойдет вам.

Ответ 4

ViewerJS полезно для просмотра/вставки формата openoffice, такого как odt, odp, ods, а также pdf.

Для ввода openoffice/pdf document

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

/ViewerJS/ - это путь к ViewerJS

#../demo/ohm2013 - это путь к файлу, который требуется вставить

Ответ 5

Native Documents (в которых я заинтересован) делает просмотрщика (и редактора) специально для документов Word (как унаследованных двоичных форматов .doc, так и современных docx). Это делается без преобразования с потерями в HTML. Вот как начать https://github.com/NativeDocuments/nd-WordFileEditor/blob/master/README.md

Ответ 6

Думаю, у меня есть идея. Это тоже делало мой орех, и у меня все еще есть проблемы с его отображением в Chrome.

Сохранить документ (name.docx) в качестве одной веб-страницы файла (name.mht) В своем использовании html

<iframe src= "name.mht" width="100%" height="800"> </iframe>

Измените высоты и ширину, как вам удобно.

Ответ 7

Если вы хотите предварительно обработать файлы DOCX, а не дожидаться времени выполнения, вы можете сначала преобразовать их в HTML, используя API преобразования файлов, например Zamzar. Вы можете использовать API для программного преобразования из DOCX в HMTL, сохранить вывод на свой сервер и затем обслуживать этот HTML до ваших конечных пользователей.

Конвертация довольно проста:

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

Это приведет к удалению любых зависимостей времени выполнения от служб Google и Microsoft (например, если они были недоступны или вы ограничены в скорости).

Кроме того, вы можете использовать другие типы файлов, если хотите (PPTX, XLS, DOC и т.д.)