2013-10-29 24 views
24

Bir pdf dosyasını gömmek için etiketi kullandım. Bazı insanlar IE8 bunu görüntülerken, dosyalar indirirken yerine yerleştirdiğiniHTML gömülü PDF iframe

<iframe id="iframepdf" src="files/example.pdf"></iframe> 

Bu vb Chrome, IE8 +, Firefox'ta çalışıyor, ama nedense. Bu tarayıcının eski olduğunu biliyorum, ancak ofisimdeki standart tarayıcıdır ve bunun gibi web sitesi bunun için tasarlanmalıdır.

Bunun neden olduğu konusunda herhangi bir fikriniz var mı, nasıl düzeltebilirim veya dosyaları indirmeye izin vermek yerine hata mesajı koyar mı?

cevap

47

Yüklü Adobe Reader eklentisi yüklü olmadığı için muhtemelen yüklenmiştir. Bu durumda, IE (hangi sürümün), nasıl işleneceğini bilmez ve sadece dosyayı indirir (Chrome, örneğin, kendi gömülü PDF oluşturucusuna sahiptir).

Bu, dedi. , bir PDF görüntülemenin en iyi yolu değildir (örneğin, Safari gibi mobil tarayıcılarla uyumluluğu unutmayın). Bazı tarayıcılar bu dosyayı her zaman harici bir uygulamada (veya başka bir tarayıcı penceresinde) açacaktır. Bulduğum en iyi ve en uyumlu şekilde biraz zor ama (hatta oldukça eskimiş) Denedim tüm tarayıcılarda çalışır:

tutun senin < iframe> ama içine bir PDF göstermez, bir HTML dolu olacak Bir <object> etiketinden oluşan sayfa. o böyle görünmelidir, PDF'niz için bir HTML sarma sayfası oluşturun:

Tabii
<html> 
<body> 
    <object data="your_url_to_pdf" type="application/pdf"> 
     <embed src="your_url_to_pdf" type="application/pdf" /> 
    </object> 
</body> 
</html> 

yine uygun eklentiyi tarayıcıda yüklü olması gerekir. Mobil cihazlarda Safari'yi desteklemeniz gerekiyorsa, this post'a da bakın.

1. Neden içinde <embed> iç içe geçmiş? here on SO cevabını bulacaksınız. İç içe <embed> etiketi yerine, kullanıcılarınız için (veya yerleşik bir izleyici, bir sonraki paragrafa bakın) özel bir mesaj sağlayabilirsiniz. Günümüzde <object> endişe olmadan kullanılabilir ve <embed> işe yaramaz.

2nd. Neden bir HTML sayfası? PDF görüntüleyici desteklenmiyorsa bir geri dönüş sağlayabilirsiniz. Dahili görüntüleyici, düz HTML hata mesajları/seçenekleri ve benzeri ...

Müşterileriniz için alternatif bir görüntüleyici sağlamanız için PDF desteğini kontrol etmek çok zor, PDF.JS projesine göz at, oldukça iyi ama görüntü kalitesi - masaüstü tarayıcıları için - yerel PDF renderer kadar iyi değil (ekran boyutundan dolayı mobil tarayıcılarda herhangi bir fark görmedim, sanırım).

+0

orada bir Adobe Reader eklentisi yüklüyse iframe'i göstermek için y yolunu ve eğer yoksa bir hata mesajı gösterilsin mi? – user2931470

+0

Evet ... bir "iframe" kullanmayın! Bir hata mesajı verebileceğiniz "nesne" yi kullanın (veya alternatif bir görünüm, cevabımın son bölümüne bakın). –

+0

Bu şimdi çalışıyor, ancak dosya yolunda mı? Pdf'nin div genişliğine sığması için izin verilen iframe kullanıyordum. – user2931470

4

Iframe

<iframe id="fred" style="border:1px solid #666CCC" title="PDF in an i-Frame" src="PDFData.pdf" frameborder="1" scrolling="auto" height="1100" width="850" ></iframe> 

Nesne

<object data="your_url_to_pdf" type="application/pdf"> 
    <embed src="your_url_to_pdf" type="application/pdf" /> 
</object> 
+1

Artık bu nesnede yazdırmayı nasıl tetiklersiniz, Yazdır tanımlı değil mi? – Miguel

7

tarayıcı varsa pdf eklentisi değil sade HTML olarak görüntülemek için Google'ın PDF Viewer kullanıyorsa o nesneyi yürütür yüklü :

<object data="your_url_to_pdf" type="application/pdf"> 
    <iframe src="https://docs.google.com/viewer?url=your_url_to_pdf&embedded=true"></iframe> 
</object> 
+0

Bu bir çekicilik gibi çalışacak, ama ben bir sürü var 'Önizleme Kullanılabilir '' belgelerini kullanarak – Ancinek

+0

@Ancinek bir örnek var mı? – mgutt

İlgili konular