Problema na exibição de PDFs em Internet Explorer usando a PDFlib

Estava fazendo alguns testes com o PDFLib, e percebi um certo problema em navegadores Internet Explorer: Quando tentava gerar um PDF passando-o em modo Inline para o browser (não como anexo), o Internet Explorer dava erro e não exibia a mensagem. Abaixo o trecho do código que ilustra isso:

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=index.pdf");
print $buf;

Após algumas consultas, fui informado pelo próprio pessoal da PDFLib, que se tratava de um problema no próprio IE especificamente na geração de arquivos PDF de forma dinâmica. Quando o IE reconhece que o tipo do conteúdo necessita de um controle ActiveX (PDF por exemplo), ele cancela a transmissão e refaz uma nova requisição para obter o arquivo. Abaixo alguns links relacionados na KB da Microsoft sobre o problema:

Ontém depois de algumas pesquisas, descobri uma forma de contornar este erro, adicionando as linhas a seguir, antes do código relatado acima:

header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Content-Transfer-Encoding: none');

Espero que isso possa ajudar outros no mesmo problema…

Posts relacionados:

2 thoughts on “Problema na exibição de PDFs em Internet Explorer usando a PDFlib

  1. Cara, vc salvou minha vida.. hehehe… brincadeirinha… mas obrigado pela dica.. estava com este mesmo problema e isso resolveu.

  2. Muito obrigado realmente me foi muito útil!
    Abraço.

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>