HTML embedded PDF iframe

usei a etiqueta para inserir um ficheiro pdf.

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

isto funciona bem no Chrome, IE8+, Firefox etc, mas por alguma razão, quando algumas pessoas estão a vê-lo no IE8, os ficheiros estão a descarregar em vez de incorporar. Eu sei que este navegador está desatualizado, mas é o navegador padrão dentro do meu escritório e, como tal, o site tem de ser projetado para isso.

alguém tem alguma ideia do porquê disto estar a acontecer, Como posso corrigi-lo ou colocar uma mensagem de erro em vez de deixar o download de ficheiros?

Author: Luke Girvin, 0000-00-00

3 answers

É baixado provavelmente porque não existe um plugin de leitura Adobe instalado. Neste caso IE (não importa qual versão) não sabe como renderizá-lo e ele simplesmente baixar arquivo (Chrome, por exemplo, tem seu próprio renderizador de PDF embutido).

Dito isto. <iframe> não é a melhor maneira de mostrar um PDF (não se esqueça da compatibilidade com navegadores móveis, por exemplo Safari). Alguns navegadores sempre abrirão esse arquivo dentro de uma aplicação externa (ou em outra janela). A melhor e mais compatível maneira que eu encontrei é um pouco complicado, mas funciona em todos os navegadores que eu tentei (até mesmo bastante desatualizado):

Mantenha o seu iframe> mas não mostre um PDF dentro dele, ele será preenchido com uma página HTML que consiste em uma etiqueta <object>. Crie uma página de embrulho HTML para o seu PDF, que deverá parecer Como isto:

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

Claro que ainda precisa do plug-in apropriado instalado no navegador. Dê também uma vista de olhos a Este post Se necessitar de suporte Safari em dispositivos móveis.

Primeiro. por que nidificar <embed> lá dentro <object>? Você encontrará resposta aqui em SO [22]. Em vez da marca aninhada <embed> você pode (deve!) forneça uma mensagem personalizada para os seus utilizadores (ou um visualizador incorporado, veja o próximo parágrafo). Hoje em dia <object> pode ser usado sem preocupações e <embed> é inútil.

2. Porquê uma página HTML? Então você pode fornecer um recurso se o visualizador de PDF não é suportado. Visualizador interno, mensagens/opções de erro HTML simples e assim por diante no...

É complicado verificar o Suporte PDF para que você possa fornecer um visualizador alternativo para os seus clientes, dê uma olhada em PDF.Js projecto, é muito bom, mas a qualidade de renderização - para Navegadores de ambiente de trabalho - não é tão boa como um nativo renderizador de PDF (não vi nenhuma diferença nos navegadores móveis por causa do tamanho do ecrã, suponho).

 52
Author: Adriano Repetti, 2017-05-23 11:54:25

Se o navegador tem um plugin pdf instalado, executa o objecto, se não usar o Visualizador de PDF do Google para o mostrar como HTML simples:

<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>
 14
Author: mgutt, 2017-03-20 16:22:42

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>

Objecto

<object data="your_url_to_pdf" type="application/pdf">
  <embed src="your_url_to_pdf" type="application/pdf" />
</object>
 5
Author: Muddasir Abbas, 2016-02-12 12:18:26