Aller au contenu

[RESOLU] Problème ouverture PDF avec IE


Quarky

Messages recommandés

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 .... :chinois:

Lien vers le commentaire
Partager sur d’autres sites

On est jamais mieux servit que par soi même !

Et donc j'ai trouvé la solution comme un grand ! :yes:

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');

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...