cs_Franky57
Messages postés7Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 mars 2009
-
18 mars 2009 à 14:54
cs_Franky57
Messages postés7Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 mars 2009
-
24 mars 2009 à 10:53
Bonjour,
voilà mon problème, j'ai un fichier php qui génère un fichier pdf grace à fpdf. J'utilise un bouton qui lance une fonction javascript dans laquelle j'utilise window.open('mon_fichier.php').
Sous FireFox 3, aucun problème, il ouvre un nouvel onglet avec le pdf que mon fichier php génère,
mais sous IE7, il m'ouvre bien une nouvelle fenêtre mais avec la page d'erreur "Internet Explorer ne peut pas afficher cette page Web".
Pourtant en utilisant un je n'ai aucun problème.
Cela fait des jours que je cherche et je ne trouve pas pourquoi IE refuse mon javascript.
cs_Franky57
Messages postés7Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 mars 2009 24 mars 2009 à 10:53
Bonjour à tous,
à force de tourner et retourner le problème dans tous les sens, j'ai enfin résolu mon problème ... Vive IE !!! (c'est ironique, bien sûr)
Devant l'obstination d'IE à me pourrir la vie, j'ai contourné mon problème :
ma fonction imprimer() en javascript était la suivante :
function imprimer()
{
window.open("mon_fichier_php_qui_genere_un_pdf.php");
}
je l'ai transformée ainsi :
function imprimer()
{
var fenetre;
fenetre = window.open();
fenetre.location.replace("mon_fichier_php_qui_genere_un_pdf.php");
}
et ça fonctionne impeccable ! De plus je n'ai rien eu à modifier dans mon fichier php, il est tel qu'il était au départ.
Je n'ai ni eu besoin d'appeler la fonction header(), ou encore d'avoir recours au méthodes ob_start(), ob_end_flush() ou ob_end_clean() de php ou encore des éventuels $pdf->Open() ou $pdf->Close().
Par contre je suis passé entre temps de Acrobat Reader 8.1.4 à Acrobat Reader 9.1 ... Je ne sais pas si cela peut avoir une incidence mais je préfère le préciser.
Quoiqu'il en soit mon pdf généré par du php s'affiche impeccablement dans une nouvelle fenêtre sous IE et FireFox. Merci à tous pour vos suggestion et remarques qui m'ont conduites à la solution.
J'invite tous les développer qui ont un problème similaire à tester ma méthode afin de voir si cela pourrait contourner le problème de plugin pour l'affichage des pdf avec IE.
// Récupération de variables de session, requêtes sql, traitement des informations et construction du document
// !!!! Il y a également des lignes vides séparant certaines lignes de code !!!!
unset($_SESSION["variables_de_session"]);
$pdf->Output();
?>
et voilà le code de création du bouton qui appel la fonction imprimer() :
print "<center></center>";
Avec FireFox : ouverture d'un nouvel onglet avec le pdf généré, aucun problème
Avec IE : ouverture d'une nouvelle fenêtre de navigateur mais qui affiche la page d'erreur "Internet Explorer ne peut pas afficher cette page Web"
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 20 mars 2009 à 10:42
Il n'y a aucune ligne, même vide, avant (<?) ou après ($pdf->output()) ta création ?
Je crois savoir qu'il y a un bug lorsque tu génères dynamiquement le PDF et que le plugin adobe est installé.
cs_Franky57
Messages postés7Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 mars 2009 20 mars 2009 à 10:58
Non, aucune ligne, qu'elle soit vide ou non avant (<?) ni après ($pdf->output()).
Je vais voir si je trouve quelque chose sur ce problème de plugin adobe avec IE ... Mais je laisse le SUJET ouvert, qui sait, peut-être que quelqu'un a déjà été confronté à ce problème ...
Ce qui est étonnant c'est que sous IE ça fonctionne avec un mais pas avec un window.open ...
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 21 mars 2009 à 11:41
Tiens, j'ai retrouvé une FAQ qui parle du pb de plugin :
http://www.fpdf.org/fr/FAQ.php#q3 Pas certain que ça vienne de là mais tente tout de même de désactiver le contrôle.
De plus le code tel qu'il est fonctionne avec FireFox. =>
Ca ne veux pas forcement dire que ton code est bon, il peut y a voir des erreurs qui passent avec FF et pas avec IE, et réciproquement.
Comme le signale Faiblard pense aux <?php, non seulement ça ne mange pas de pain mais surtout c'est indispensable si tu veux que tes scripts continuent à fonctionner dans un avenir proche.
Au pire si tu ne t'en sort pas, passe par un fichier temporaire plutôt que généré le PDF à la volée, ou alors poste l'intégralité de ton code que l'on puisse tester.
cs_Franky57
Messages postés7Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 mars 2009 23 mars 2009 à 10:12
Poster l'intégralité du code est impossible, à cause de la clause de confidentialité.
Mais je viens d'essayer mon code avec Safari, il fonctionne aussi et pourtant je n'ai rien modifié du tout.
J'ai oublié de préciser que l'affichage de toutes les pages ou de tout code php se fait via AJAX dans des balises
ou autre ... mais bon ça fonctionne avec FireFox et Safari, il n'y a que avec IE que ça veut pas ... Je commence à me dire que mon code est bon mais que c'est IE qui déconne.
Je vais tester différentes méthodes.
Merci pour le lien Kohntark.