4

データベースからいくつかの情報を取得し、比較的単純なダイナミックHTMLを作成するファイルがあります。

このファイルは、DOMPDFでPDFドキュメントに変換するために使用できます。DOMDPFは、GET変数を使用して基本的な実装を実現します。

ob_start();
include_once("report.php?id=1249642977");

require_once("dompdf/dompdf_config.inc.php");

$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_contents());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));

ob_end_clean();

目的を達成するために何かを使うことができるかもしれないと思いましたが、当然のことながらそれはうまくいきませんでした。

では、ファイルを直接ロードしてDOMPDFクラスで使用する文字列にした場合、ブラウザに出力されるHTMLをどのように読み取ることができますか?

4

6 に答える 6

6

単純なHTTPリクエストを使用してHTMLファイルを取得し、それを$dompdfオブジェクトにロードするのはどうでしょうか。

   <?php
    //...
    $dompdf->load_html(file_get_contents("http://yoursite.net/report.php?id=1249642977"));
   //...
   ?>

ここで出力バッファリングが必要な理由がわかりません。

于 2009-08-08T00:21:30.143 に答える
5

2つの問題。

まず、include_onceを使用してそのようなPHPページを呼び出すことはできません。クエリ文字列は無視されます。他の方法でreport.phpにIDを指定する必要があります。

次に、出力を正しくバッファリングしています。ただし、現在の出力バッファーをDOMPDFに渡し、出力バッファーにPDFを生成するように指示し、出力バッファーを破棄します。あなたはおそらく次のようなものが欲しいでしょう:

$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));

これにより、現在の出力バッファが取得され、破棄され、出力バッファリングが無効になります。$dompdf->streamが機能するはずです。

于 2009-08-07T15:40:18.360 に答える
3

BlackAuraは正しい方向に進んでいます。File_get_contentsは、他の人が示唆しているように、GET変数(またはPOST)を渡しません。ただし、cURLを使用してそれを行うことができます。以下のコードが機能するはずです。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://YOURFULLURL.COM/report.php?id=1249642977');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$my_html = curl_exec($ch);
curl_close($ch);

$dompdf = new DOMPDF();
$dompdf->load_html($my_html);
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));

お役に立てば幸いです。

-ケビン

于 2011-03-24T22:03:54.937 に答える
1

PHPfile_get_contentsをそのまま使用するだけです。

$page_html = file_get_contents("page.php?id=number");

次に、$page_htmlをdompdfに渡します。

お役に立てれば :)

于 2009-08-08T00:39:49.347 に答える
1

最終的に、HTMLを生成するphpページを変更して、HTML文字列を返す関数になるようにすることにしました。これは、解決策というよりも回避策です。

このページの将来のGoogle社員は、DOMPDFを使用すると、以下を使用してページ上でインラインPHPを実行できることに注意する必要があります。

<script type="text/php">
   //some PHP here
</script>
于 2009-08-11T08:20:13.917 に答える
0

BlackAuraは正しい考えを持っています。生成されたPDFを出力バッファーに追加してから、すべてを破棄します。

于 2009-08-17T14:53:35.487 に答える