• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

anolsi

Mostrar PDF no IE

11 mensagens neste tópico

Estou com um problema que é o seguinte, tenho uma hiperligação que abre, uma nova página, a qual me vai gerar um PDF e apresentá-lo. No FF, tudo corre sem problemas e consigo ver o o documento, no entanto no IE, o documento é gerado (porque estou a guardá-lo e amostrá-lo) mas não é amostrado, ficando uma página em branco. Estou a usar o FPDF para gerar os PDFs.

Convém dizer, que se meter o link directo para o PDF no servidor, este é aberto por ambos, mas eu não quero isso, queria que abrisse na mesma no IE.

O que teria que fazer simplesmente seria

$pdf->Output();

onde o $pdf já teria sido instanciado acima:

$pdf= new FPDF();

Mais, nos exemplos deles funciona correctamente. Alguém já se deparou com algo semelhante? E como o resolveu?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei como tens o esquema a gerar dinamicamente, mas supondo que são id's numéricos, é colocar o conteudo num ficheiro .htaccess:

RewriteEngine on
RewriteRule ^([0-9]+)\.pdf$ script.php?id=$1

Agora, acedendo ao ficheiro 15621.pdf, ele internamente (não se vê o url script.php?... no browser), gera dinamicamente o documento com esse mesmo id, com o teu script e devolve-o.

EDIT2: Corrigi e testei com sucesso as regras do htaccess. Nunca vou atinar com expressões regulares...  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basta eu adicionar a primeira linha, para o server me dar o erro 500. Não é necessário alterar nada no servidor?

EDIT: Pus algo como

RewriteEngine on
RewriteRule ^([0-9]+)\.pdf$ geraPDF.php?tarefa=geranotasalunos&a=$1&p=0&s=0&per=1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É preciso ter o mod_rewrite activo nos módulos do servidor Apache. De resto, testei e está tudo bem com as tuas regras.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já consegui colocar isso a funcionar, no entanto agora o IE diz que não consegue mostrar a página, apesar do script PHP ser executado, porque está a guardar no servidor também. Não sei que mais hei-de fazer. :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta adicionar os heads para o IE:

header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=$nome")

Juntamente com o redirecionamento, tenta estes heads, antes de gerares o output do PDF. Onde está $nome, coloca o nome do ficheiro que aparece no browser (o tal id), com a extensão pdf. Se isto não der, então é melhor esperar pelo feedback de mais alguém.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nem com isso funcionou.

Mas descobri uma solução temporária, se chamar em vez de usar o window.open, crio uma hiperligação recorrendo ao javascript, em que o utilizador tem que clicar e já funciona correctamente. Pelo que li parece ser uma "implementação de segurança do IE", a o facto de ser chamado por javascript, no entanto, mesmo que eu meta o link na barra de endereços, ele dá-me os mesmo erro.

Por isso está temporariamente resolvido, mas queria ver se alterava, porque assim o utilizador tem que clicar duas vezes para ver o PDF.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora