0

作成中のプロジェクトにdompdfを使用していますが、プロジェクトの一部では、レポートをPDF形式で生成する必要があります。

レポートのHTMLバージョンでは、レポートの詳細の一部が次のようにiFrameに表示されます。

        <?php foreach ($jobsheets as $jobsheet) { ?>
            <iframe src="http://localhost/modal/customers/<?php echo $company['Company']['id']; ?>/jobs/<?php echo $jobsheet['Jobsheet']['id']; ?>/viewlite/" id="jbif<?php echo $jobsheet['Jobsheet']['id']; ?>" frameborder="0" width="975px" height="272px" scrolling="no" class="<?php echo $jobsheet['Jobsheet']['jobdate']; ?>"></iframe>
        <?php } ?>

ただし、これらのiframeをレンダリングせずに生成されているPDF。dompdfモジュールにレンダリングさせるためにできることはありますか、それともiframeを使用せずにデータを物理的に含める必要がありますか?

4

2 に答える 2

3

Dompdfは、ドキュメント内のiframeのレンダリングをサポートしていません。トラッカーで問題を送信できます。今のところ、他のものを使用する必要があります。

于 2012-08-25T09:22:59.730 に答える
2

dompdfから生成されたpdfファイルを表示するには、ファイルをディスクに保存してから、オブジェクトタグ内で呼び出します。

PHP

try {
    $buffer = ob_get_contents();
    ob_clean();

    $dompdf = new \Dompdf\Dompdf();

    $dompdf->setPaper('A4');
    $dompdf->loadHtml($buffer);

    $dompdf->set_option('isHtml5ParserEnabled', true);

    // Render the HTML as PDF
    $dompdf->render();

    // save the generated PDF to Browser
    file_put_contents('file.pdf', $dompdf->output());
    chmod('file.pdf', 0777);
} catch (Exception $ex) {
    echo $ex->getMessage();
}

HTML

<html>
<head>
    <title>FILE PDF</title>
</head>
<body style="margin: 0; padding: 0">
    <div style="width: 740px; margin-left: auto; height: 20%; padding: 0; margin: 0;">
        <a href="">SEND PDF</a>
    </div>
    <object data="http://<?=$_SERVER['HTTP_HOST']?>/file.pdf" type="application/pdf" style="margin: 0; width:100%; height: 80%; padding: 0;">
      <embed src="http://<?=$_SERVER['HTTP_HOST']?>/file.pdf" type="application/pdf" />
    </object>
</body>
于 2017-07-15T23:23:14.400 に答える