Jump to content

[RESOLU] Problème ouverture PDF avec IE


Recommended Posts

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:

Link to comment
Share on other 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');

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...