0

この設定が機能するかどうかは疑問でした。フォームを介して $_SESSION にプッシュしている一連の変数から PDF のバッチを作成する必要があります (duh...)。アイデアは、テンプレート ファイルを dompdf エンジンに渡し、テンプレートを $_SESSION から入力してから PDF に出力することです。$template が読み込まれると、そうする必要があるように思えます。

基本的なコードは次のとおりです。

<?php
function renderToPDF($theTemplate = "template.php") // this is just to show the value
{
  require_once("dompdf/dompdf_config.inc.php");

  $content = file_get_contents($theTemplate); 

  if ($content !== false)
  {
    $dompdf = new DOMPDF();
    $dompdf->load_html($content);
    $dompdf->render();
    $dompdf->stream("kapow_ItWorks.pdf");
  }
}
?>

これがtemplate.phpファイルです(基本的に... 16ページすべては必要ありません...)

<html>
<meta>
<head>
  <link href="thisPage.css" type="text/css" rel="stylesheet">
</head>
  <body>
    <h1><?php echo $_SESSION['someTitle'] ?></h1>
    <h2>wouldn't it be nice, <?php echo $_SESSION['someName'] ?></h2>
  </body>
</html>

したがって、私の考えでは、template.php は次の$_SESSIONように、何の介入もなしに配列から変数を取り出します。

ビッグタイトル

いいじゃないかハンサムルル?

質問の核心は次のとおりだと思います: $_SESSIONPHPファイルがロードされたときに変数は評価されますが、レンダリングされませんか?

WR!

4

2 に答える 2

2

何らかの理由で、関数 ALSO を呼び出すページのコードがファイルにダンプされます。これはヘッダーの前に配置されました。理由がわかりました。外部ページを参照していたのではなく、外部ページをインポートしていました。なぜそれがクリックされなかったのかわかりません。

とりあえず。ページの余分なものを取り除くとすぐに、うまくいきました。振り返ってみると、dompdf が述べる必要があったのは、関数を呼び出すページには、いかなる種類の HTML (echo、print など) も存在できないということでした。少なくとも、このレベルの私の知識では必要と思われるものです。

私のように、「答え以外のすべて」のミスマに苦しんでいる人のために、仕事をした最低限のコードを次に示します。

buildPDF.php:

<?php
session_start();
$_SESSION['someTitle'] = "BIG FAT TITLE";
$_SESSION['someName'] = "HandomeLu";

$theTemplate = 'template.php';

function renderToPDF($templateFile)
{
  require_once("_dox/dompdf/dompdf_config.inc.php");
  ob_start();
  include $templateFile;
  $contents = ob_get_clean(); 

  if ($contents !== false)
  {
    $dompdf = new DOMPDF();
    $dompdf->load_html($contents);
    $dompdf->render();
    $dompdf->stream("kapow_ItWorks.pdf");
 }
}

renderToPDF($theTemplate);
?>

そしてこれがtemplate.php:

    <!DOCTYPE HTML>
    <html>
    <meta>
    <head>
      <meta charset="utf-8">
      <link href="thisPage.css" type="text/css" rel="stylesheet">
    </head>
    <body>
      <h1><?php echo $_SESSION['someTitle'] ?></h1>
      <p>wouldn't it be nice, <?php echo $_SESSION['someName'] ?></p>
    </body>
   </html>

また、外部 CSS ファイルが正常に読み込まれることにも注意してください。そのため、構造とスタイルを別々に保つことができます。また、$_SESSION 変数はどこにでも設定できます。明らかに、テストを簡単にするためにここに設定するだけです。

この素晴らしいクラスを始めようとしている人にとって、これが役立つことを願っています。PDFファイルを起動して実行しようとしている場合、これは非常に難しいので、トリガーとグリップが必要です。:)

コメントしてくれたみんなに感謝します。あなたは私を必要な場所に連れて行ってくれました。:)

このサイト ROCKS.

WR!

于 2011-10-28T21:57:33.423 に答える