sql >> データベース >  >> RDS >> Mysql

dompdfで複数のページを作成する方法

    ループは正常に機能しています。 PDFにページを追加する方法はおそらく間違っています。どうやら、新しいページを添付する代わりに、1つのページを何度も上書きしているようです。

    編集

    私はdompdfを使ったことがありません。ドキュメントをざっと見てみると、HTMLマークアップのようなものを作成してPDFに変換していると思いますが、これは正しいですか?

    サンプルコード

    $html = <<<HTML
      <html>
          <head>
                <style type="text/css">
                    /* Your document styling goes here */
                </style>
          </head>
          <body>
    HTML;
    
    while ( $row = $dbResult->fetch_assoc() ) {
        $html .= '<div class="teacherPage">'
                     . $row['name'] // your teacher document goes here
                 '</div>';
    }
    
    $html .= '</body></html>';
    
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    $dompdf->stream("sample.pdf");
    

    変わった構文について疑問がある場合$var = <<<HTML \r\nHTML 、これはヒアドキュメント> 。エイリアンのインラインコードがたくさんある場合は、ヒアドキュメントを使用する方が快適です。これには変数{$varname}を含めることができます。 引用符について心配する必要はありません。確認する必要があるのは、ヒアドキュメントをHTMLに近づけることだけです。 改行されており、インデントされていません。

    編集2

    どのライブラリを使用しているかはまだわかりません。 この拡張機能 が見つかりました 見た目はかなり良く、質問で言ったように、それはdompdfと呼ばれています。

    あなたの最新のコメントはあなたが今のところあなたの問題を解決しなかったことを示しているので、私はあなたを目標に導くためにいくつかの情報を追加することにしました。

    dompdfは、入力ドキュメントのCSS2およびCSS3プロパティを読み取ることができます。

    whileの各サイクル 上記のループは、それぞれが出力ドキュメントで独自のページを取得している1人の教師を表しています。

    ページをクラスteacherPageのdivコンテナに入れました 。このコンテナに、教師に表示したいすべての情報を入力できます。

    今、私たちがする必要があるのは、dompdfに各teacherPageを伝えることだけです。 新しいページです。これは、@pageを使用して実行できます マークアップCSS3に同梱

    空のcssコンテナを追加しました<style type="text/css"></style> 上記のサンプルドキュメントでは、ページのスタイル設定を行う必要があります。

    サンプルCSS

    @page teacher {
      size: A4 portrait;
      margin: 2cm;
    }
    
    .teacherPage {
       page: teacher;
       page-break-after: always;
    }
    

    @pageを使用 名前付きページを定義できますteacher 、ページコンテナ全体に有効なプロパティを持つことができます。

    page-break-after: always 各コンテナの後に新しいページが始まります

    これがお役に立てば幸いです。楽しんでください:)



    1. PHPセッションID文字列の長さはどれくらいですか?

    2. SQL Server LocalDBの自動シャットダウンを防ぐ方法は?

    3. PHP Laravel:ターゲットマシンが積極的に拒否したため、接続できませんでした

    4. 解析エラー:構文エラー、予期しない''(T_ENCAPSED_AND_WHITESPACE)