Bonjour à tous,
Actuellement, dans le cadre d'un projet au boulot, je dois corriger un bug concernant l'affichage d'un PDF dans une page Web.
Le problème est le suivant :
Le PDF s'affiche bien dans la page sous Firefox
Mais sous IE8, avec Acrobat Reader X, je n'ai qu'un écran gris (voir screenshot), de plus vu la réaction de l'ordi sur le moment, je suis certain à 99.99% que le plugin PDF est chargé et que le document est bien chargé il s'agit donc d'un bug que je ne sais pas résoudre.
Voici mes questions :
Comment insérer PROPREMENT un pdf dans une page web ? (peu importe les réglages utilisateur : le comportement par défaut du plugin PDF sous Windows (et même sous Linux je crois) c'est de laisser les pdf s'afficher dans la page)
Est-ce qu'une iFrame est une bonne idée ? (J'ai déjà essayé avec un <object> l'erreur sous IE8 est la même...par contre ça marche nikel sous Firefox)
Est-ce que les headers utilisés sont les bons ?
Ci-dessous le code PHP/XHTML/JS qui charge le fichier PDF.
Le PHP :
Le javascript (appel le code PHP ci-dessus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php $contrat = $documentState->getDocumentBean(); $absolutePathName = $contrat->path_document; if (file_exists($absolutePathName)) { header('Content-Type: application/pdf'); header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date dans le passé header('Content-Disposition: inline filename=' . $contrat->nom_archivage. date("dmy",time()) . '.pdf'); readfile($absolutePathName); exit; } else { echo "Contrat / Fichier non trouvé"; exit; })
Et voici le HTML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $('#visuContrat').attr('src','ged/index/ajax-dispatch?document_id='+idDocument+'&actionRequire=ActionVisualiserContrat');
Screenshot du bug sous IE8 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <iframe width="800px" height="250" id="visuContrat" ></iframe>
Je vous remercie par avance![]()
Partager