Quarky Posted May 27, 2006 Share Posted May 27, 2006 Salut @ tous. Pour un site que je développes, je dois créer dynamiquement un document pdf et le fournir au visiteur. J'ai donc fais ma petite affaire avec FPDF et tout marche très bien sous Firefox : c'est-à-dire que je peux directement ouvrir le document et le télécharger. Mais sous IE, je peux seulement enregistrer le pdf sur mon DD (il peut alors être consulter sans souci). Si je choisis de l'ouvrir directement, j'ai un message d'erreur : "Une erreur est survenue lors de l'ouverture de ce document. Fichier introuvable." Mon code : // Méthode de cration du fichier pdf a partir des données du formulaire public function generePdf() { $pdf = new FPDF(); $this->nom = str_replace("\'", "'", $this->nom); $this->prenom = str_replace("\'", "'", $this->prenom); $adresse = str_replace("\'", "'", $this->adresse); $adresse = nl2br($adresse); $adresse = explode('<br />', $adresse); $this->ville = str_replace("\'", "'", $this->ville); $pdf->AddPage(); $pdf->SetLeftMargin(35); $pdf->SetRightMargin(30); $pdf->Image('../outils/entete.png', 10, 10); $pdf->Rect(10, 7, 190, 40); $pdf->Ln(0); $pdf->Cell(60, 35, '', 0, 1); $pdf->SetFont('times','BU', 25); $pdf->Cell(140, 30, 'Informations personnelles', 0, 1, 'C'); $pdf->SetFont('Arial','B',14); $pdf->Cell(60, 7, 'Nom : ', 0, 0, 'R'); $pdf->Cell(60, 7, $this->nom, 0, 1); $pdf->Cell(60, 7, 'Prénom : ', 0, 0, 'R'); $pdf->Cell(60, 7, $this->prenom, 0, 1); $pdf->Cell(60, 7, 'Email : ', 0, 0, 'R'); $pdf->Cell(60, 7, $this->email, 0, 1); if ($this->telephone) { $i = '0'; while ($i != strlen($this->telephone)) { $tel[] = substr($this->telephone, "$i", '2') . " "; $i = $i+2; } $pdf->Cell(60, 7, 'Téléphone : ', 0, 0, 'R'); foreach ($tel as $doublet) { $pdf->Cell(5, 7, $doublet, 0, 0); $pdf->Cell(2, 7, '', 0, 0); } $pdf->Cell(60, 7, '', 0, 1); } $pdf->Cell(60, 7, 'Adresse : ', 0, 0, 'R'); foreach ($adresse as $ligne) { $pdf->Cell(0, 7, $ligne, 0, 2); } $pdf->Ln(0); $pdf->Cell(60, 7, 'Code Postal : ', 0, 0, 'R'); $pdf->Cell(60, 7, $this->code, 0, 1); $pdf->Cell(60, 7, 'Ville : ', 0, 0, 'R'); $pdf->Cell(60, 7, $this->ville, 0, 1); if ($this->statut) { $pdf->Cell(60, 7, 'Statut : ', 0, 0, 'R'); $pdf->Cell(60, 7, $this->statut, 0, 1); } $pdf->Cell(60, 15, '', 0, 1); $pdf->SetLeftMargin(45); $pdf->SetFont('times','', 14); $sousigne = <<<EOT Je sousigné, $this->prenom $this->nom, déclare vouloir adhérer à ----------. EOT; $pdf->Write(6, "$sousigne"); $pdf->SetFont('times','I',14); $pdf->Cell(60, 10, ' ', 0, 1, 'R'); $pdf->Cell(60, 7, ' ', 0, 0, 'R'); $date = date ("d / m / Y"); $pdf->Cell(60, 7, "Le $date,", 0, 1, 'L'); $pdf->Cell(60, 7, ' ', 0, 0, 'R'); $pdf->Cell(60, 7, 'Signature', 0, 1, 'L'); $pdf->Cell(40, 30, '', 0, 1); $text = <<<EOT Une fois ce document imprimé, veuillez le transmettre à l'adresse suivante : EOT; $adresse = <<<EOT ---------------- ---------------- ---------------- EOT; $pdf->SetLeftMargin(45); $pdf->SetFont('times','', 14); $pdf->Write(6, "$text"); $pdf->SetLeftMargin(70); $pdf->SetFont('times','I', 12); $pdf->Cell(60, 10, '', 0, 1); $pdf->Write(7, "$adresse"); $pdf->Output("Adhesion.pdf", "D"); return $pdf; } Merci pour votre aide .... Link to comment Share on other sites More sharing options...
Quarky Posted May 27, 2006 Author Share Posted May 27, 2006 On est jamais mieux servit que par soi même ! Et donc j'ai trouvé la solution comme un grand ! cf. FAQ de FPDF : 5. Lorsque j'utilise une session PHP, IE n'affiche plus mon PDF mais propose de le télécharger.C'est un problème qui affecte certaines versions d'IE. Pour le contourner, ajoutez la ligne suivante avant session_start() : session_cache_limiter('private'); Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.