web-dev-qa-db-fra.com

Ouvrir PDF dans un nouvel onglet en utilisant dompdf

J'essaie de générer un fichier PDF à l'aide de dompdf. Comment puis-je ouvrir le fichier PDF dans un nouvel onglet d'un navigateur? Comme, je clique sur un lien pour le PDF et il devrait s'ouvrir dans un nouvel onglet, pas l'enregistrer automatiquement. Je souhaite donner à l'utilisateur le choix de sauvegarder le fichier après l'avoir vu. comment je fais ça?

chaque fois que j'utilise $ pdf-> output à la fin du fichier, cela ne change rien, le fichier est toujours téléchargé automatiquement. s'il vous plaît aider. Merci.

14
freeloader

Le téléchargement ou l'affichage d'un PDF dans le navigateur dépend de plusieurs facteurs. Le premier concerne les paramètres de votre navigateur, mais nous n’avons aucun contrôle là-dessus. La seconde est la manière dont dompdf présente le PDF au navigateur. Vous pouvez indiquer à dompdf de proposer le PDF pour un affichage direct à l'aide de $dompdf->stream('my.pdf',array('Attachment'=>0));.

En ce qui concerne l'ouverture dans un nouvel onglet. Cela dépend de la façon dont vous générez le PDF. Mais le moyen le plus simple est de fournir un lien avec un attribut cible.

42
BrianS

J'ai le même problème sur mon site ( http://www.pdfwebcreator.com )

Ma solution est:

    $myfile = fopen($strFileName, "r") or die("Unable to open file!");
    $fileSize = filesize($strFileName);
    header("HTTP/1.1 200 OK");
    header("Pragma: public");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    header("Cache-Control: private", false);

    header("Content-type: application/pdf");
    header("Content-Disposition: attachment; filename=\"temporaryPdf.pdf\""); 

    header("Content-Transfer-Encoding: binary");
    header("Content-Length: " . $fileSize);

    echo fread($myfile, $fileSize);
}
2
FabryProg

Je suis encore en train d'expérimenter, mais quelque chose comme ça marche bien aussi

$pdf->loadView('file/path', compact('values'));
return $pdf->stream();

Avec cela, vous pouvez ajouter des valeurs dynamiques à votre page de fichier pdf dans le navigateur.

1
Abdur Rahman Turawa

Je ne sais pas si vous avez, mais si vous utilisez false dans cette ligne:

$dompdf-> stream("pasta/doc/relatorio.pdf", array("Attachment" => false));

Vous pouvez voir le pdf dans le navigateur.

0
Andressa Leite