web-dev-qa-db-ja.com

dompdfを使用して新しいタブでPDF

Dompdfを使用してPDFを生成しようとしていますが、ブラウザの新しいタブでPDFを開くにはどうすればよいですか?同様に、PDFのリンクをクリックすると、自動的に保存するのではなく、新しいタブで開くはずです。最初にファイルを表示した後で、ファイルを保存する選択肢をユーザーに提供したいと思います。方法私はそれをしますか?

ファイルの最後で$ pdf-> outputを使用しても、変更はありません。ファイルは自動的にダウンロードされます。助けてください。ありがとう。

15
freeloader

PDFがダウンロードされるか、ブラウザで表示されるかは、いくつかの要因によって異なります。 1つはブラウザの設定ですが、制御することはできません。 2つ目は、dompdfがPDFをブラウザーに表示する方法です。 dompdfに、$dompdf->stream('my.pdf',array('Attachment'=>0));を使用して直接表示するためのPDFを提供するように指示できます。

新しいタブで開く限り。これは、PDFを生成する方法によって異なります。しかし、ターゲット属性を持つリンクを提供する最も簡単な方法。

43
BrianS

私のサイトにも同じ問題があります( http://www.pdfwebcreator.com

私の解決策は次のとおりです。

    $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

あなたが得たかどうかはわかりませんが、この行でfalseを使用した場合:

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

あなたはブラウザでpdfを見ることができます。

1
Andressa Leite

まだ実験中ですが、このようなものでも問題なく動作します

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

これにより、ブラウザ内のPDFファイルページに動的な値を追加できます。

1