JavaScript kullanarak tarayıcıda bir Word belgesini (.doc, .docx) nasıl oluşturabilirim?


146

Tarayıcıda "Aç / Kaydet" iletişim kutusu yerine PDF dosyasını görüntülemek için kod başarıyla yaptım. Şimdi, tarayıcıda bir Word belgesi görüntülemeye çalıştım. Firefox, IE7 +, Chrome vb. Sürümlerde bir Word belgesi görüntülemek istiyorum.

Biri yardım edebilir mi? Word belgesini tarayıcıda görüntülerken her zaman "Aç / Kaydet" iletişim kutusunu alıyorum. Bu işlevi JavaScript kullanarak uygulamak istiyorum.



docx dosyalarını göstermek ve düzenlemek için syncfusion-document-editor'ü kullanabilirsiniz
Yusuf Mohammad

Yanıtlar:


225

Şu anda hiçbir tarayıcı Word Belgelerini oluşturmak için gerekli koda sahip değil ve bildiğim kadarıyla, bunları oluşturmak için var olan istemci tarafı kitaplıkları da yok.

Ancak, yalnızca Word Belgesini görüntülemeniz gerekiyorsa, ancak düzenlemeniz gerekmiyorsa, <iframe>uzaktan barındırılan bir .doc/ görüntülemek için Google Belgeler Görüntüleyicisini bir .docx.

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

" Fancybox kullanarak bir kelime belgesi nasıl görüntülenir " den uyarlanmıştır .

Misal:

JSFiddle

Bununla birlikte, yerel desteğe sahip olmayı tercih ederseniz, çoğu tarayıcıda olmasa da çoğunda, .doc/ .docxdosyasını PDF dosyası olarak kaydetmenizi öneririm. Bunlar Mozilla tarafından PDF.js kullanılarak bağımsız olarak da oluşturulabilir .

Düzenle:

Yorumlarda Microsoft Office 365 görüntüleyiciyi yayınladığı için fatbotdesigns'e çok teşekkür ederiz .

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

Akılda tutulması gereken bir diğer uyarı, lightswitch05 tarafından belirtildiği gibi , bunun belgenizi üçüncü taraf bir sunucuya yükleyeceğidir. Bu kabul edilemezse, bu görüntüleme yöntemi uygun eylem şekli değildir.

Canlı Örnekler:

Google Doküman Görüntüleyici

Microsoft Office Görüntüleyici


2
@Pankaj Google Drive'a yüklemeniz gerekmez. Sadece değiştirebilir urlya sunucu üzerinde barındırılan, .doc dosyasının tam URL'ye paramteter veya herhangi bir yere doğrudan bağlantılı olabilir. Google Dokümanlar, dönüşümü tarayıcı tarafından anında gerçekleştirilebilecek bir biçime dönüştürür ve bunun Google Dokümanlar'a yüklenmesini veya depolanmasını gerektirmez, bunun yerine dosyayı almak için sunucu tarafı isteği gerçekleştirir.
Brandon Anzaldi

3
@Pankaj Yerel bir sunucu barındırıyor olsanız bile Google erişemez localhost. Herkese açık bir URL'ye ihtiyacı var. Finch gibi temel bir yönlendirme servisini kullanabilirsiniz .
Brandon Anzaldi

11
Office canlı uygulamalar görüntüleyicisini de kullanabilirsiniz: //view.officeapps.live.com/op/embed.aspx?src=your_url_buraya bu url'yi iframe içine yerleştirin
fatbotdesigns

1
@BonifacePereira Bir intranet oluşturuyorsanız, GDocs ve Live'ın her ikisini de belgeyi bir yerden alması gerekeceğinden, muhtemelen yerel olarak bir miktar dönüşüm yapmanız gerekecektir. Mümkünse, OpenOffice veya başka bir şeyle dönüşüm için bir sunucu kurabilirsiniz: stackoverflow.com/questions/5538584/…
Brandon Anzaldi

18
Bu yöntemlerin her ikisinin de dosyaları kesinlikle Google'ın ve Microsoft'un sunucularına yüklediğini belirtmek isteriz. Sınırlı erişimi olması gereken hassas bilgilerle uğraşıyorsanız, bunu yapmayın. Tarayıcıda görüntülemek üzere dosyanın PDF sürümünü oluşturmak ve çeşitli excel / doc sürümlerini indirmek için bir bağlantı sunmak için PDF.js ile alternatif çözümü kullanın.
lightswitch05

30

Brandon ve fatbotdesigns'in cevapları doğru, ancak Google dokümanlar önizlemesini uyguladıktan sonra, Google tarafından işlenemeyen birden çok .docx dosyası bulduk. MS Office Online önizlemesine geçildi ve bir cazibe sever.

Benim tavsiyem MS Office Önizleme URL'sini Google’ın üzerinde kullanmaktır.

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

1
Bunu kullanmak için herhangi bir kısıtlama var mı? support.microsoft.com/tr-tr/help/2769380/…
Vishnu

bir karşı anlatım sağlamak için - google sürümünü seçtik çünkü microsoft renderer'ın hem krom hem de ff'ye yüklenmesi çok daha uzun sürüyor
David Holiday

13

Html dönüştürme istemci tarafına .docx (.doc değil) işleyebilen bazı js kütüphaneleri var (belirli bir sırayla):

Not: Bir doc / docx dosyasını istemci tarafında dönüştürmenin en iyi yolunu arıyorsanız, muhtemelen cevap yapmayın . Eğer gerçekten yapmanız gerekiyorsa o zaman sunucu tarafı, yani başsız modda libreoffice , apache-poi (java) , pandoc veya diğer kütüphaneler sizin için en uygun olanı yapın.


1
Kütüphanemin tamamen saklandığını göreceğim. Docx dosyalarını tarayıcıda oluşturulabilecek bir şeye dönüştürmeyi başardı. Bunun doğru olup olmadığını artık bilmiyorum.
artburkart

2

Sanırım bir fikrim var. Bu da benim somunumu yapıyor ve Chrome'da görüntülenmesini sağlamakta hala sorun yaşıyorum.

Belgeyi (name.docx) kelimesini tek dosya web sayfası (name.mht) olarak kaydedin html kullanımınızda

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

Uygun gördüğünüz yükseklik ve genişlikleri değiştirin.


6
@guidomocha Sadece yorum yapmayın, bunun neden kötü bir yaklaşım olduğuna dair akıl yürütün.
J. Louw

2

ViewerJS odt, odp, ods ve ayrıca pdf gibi openoffice formatını görüntülemek / gömmek için yararlıdır.

Yerleştirme openoffice / pdf belgesi için

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

/ViewerJS/ ViewerJS'nin yolu

#../demo/ohm2013 Dosyanızın yolu gömmek mi istiyor?


Aws s3
Vishnu

Hayır, Yalnızca Yerel Bağlantı
Sağlıyorsunuz

1
Yanıtınız için teşekkür ederiz
Vishnu

Ne yazık ki bağlamımda microsoft formatları daha yaygın.
guettli

1

Yerel Belgeler (ilgimi çektiğim), özellikle Word belgeleri (hem eski ikili .doc hem de modern docx biçimleri) için bir görüntüleyici (ve düzenleyici) yapar. HTML'ye kayıplı dönüşüm olmadan bunu yapar. Nasıl başlayacağınız https://github.com/NativeDocuments/nd-WordFileEditor/blob/master/README.md


2
Fiyatlandırma hakkında herhangi bir bilgi yoktur. 'Word Dosya Editörü / Görüntüleyici' ücretsiz mi?
FiringBlanks

Ticari yazılımı, ancak yeni başlayanlar / küçük işletmeler için ücretsiz bir planımız ve diğerleri için kullanım sınırlarına tabi ücretsiz bir planımız var. Ayrıntıları yakında yayınlayacağız.
JasonPlutext

bu tek bir sayfada sunucusuz çalışabilir mi, örneğin aws s3?
Graham Chiu

sunucu tarafında bir yerde çalıştırmanız gereken Docker kapları olarak paketliyoruz (örneğin ECS). (Prensip olarak bunlardan bazılarını
Lambda'da

3
@JasonPlutext Bu ilginç görünüyor. Ama künt olacağım: İyi bir paket veya hizmet için küçük bir makul ücret ödemeye hazırım - ancak "bilgilerinizi gönderin ve bunun maliyetini size bildiririz" HAYIR GİDİR .
manassehkatz-Moving 2 Codidact

0

DOCX dosyalarınızı önceden işlemek istiyorsanız, çalışma zamanına kadar beklemek yerine, önce Zamzar gibi bir dosya dönüştürme API'sını kullanarak HTML'ye dönüştürebilirsiniz. . API'yi, programlı olarak DOCX'ten HMTL'ye dönüştürmek, çıktıyı sunucunuza kaydetmek ve daha sonra bu HTML'yi son kullanıcılarınıza sunmak için kullanabilirsiniz.

Dönüştürme oldukça kolaydır:

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

Bu, Google ve Microsoft'un hizmetlerine ilişkin çalışma zamanı bağımlılıklarını kaldıracaktır (örneğin, çalışmama durumundaysa veya bunlar tarafından sınırlıysanız).

İsterseniz diğer dosya türlerine de genişletebileceğiniz avantajı vardır (PPTX, XLS, DOC vb.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.