DOMPDFを使用してPDFファイルを作成しています。 PDFに抽出する大きなコンテンツがあります。すべてのページにヘッダーが必要です。だから誰でもPDFにヘッダーとフッターを追加する方法を教えて、DOMPDFを使用してすべてのページにヘッダーが表示されるようにすることができます。
0.6.0コードでは、HTML + CSSを使用してヘッダーとフッターを生成できます。インラインPHP(例:PAGE_COUNTプレースホルダーはまだありません)を使用する場合と比較すると、いくつかの制限があります。
次のコードは、 ヘッダーとフッターを含む2ページのドキュメント を生成します。
<html>
<head>
<style>
@page { margin: 180px 50px; }
#header { position: fixed; left: 0px; top: -180px; right: 0px; height: 150px; background-color: orange; text-align: center; }
#footer { position: fixed; left: 0px; bottom: -180px; right: 0px; height: 150px; background-color: lightblue; }
#footer .page:after { content: counter(page, upper-roman); }
</style>
<body>
<div id="header">
<h1>Widgets Express</h1>
</div>
<div id="footer">
<p class="page">Page </p>
</div>
<div id="content">
<p>the first page</p>
<p style="page-break-before: always;">the second page</p>
</div>
</body>
</html>
欠落している機能の一部にアクセスする必要がある場合は、2つのスタイルの組み合わせを使用することもできます。 PDF page_text
メソッドを使用して追加されたオブジェクトとテキストは、HTMLコンテンツの上にレンダリングされます。
FAQのエントリが DOMPDF wiki :ヘッダーとフッターまたはページ番号を追加する方法はありますか?。
したがって、次の「インラインPHP」スニペットをHTML入力に追加できます(同様の _page_text
_ -callをフッターに追加します)。
_<script type="text/php">
if ( isset($pdf) ) {
$font = Font_Metrics::get_font("helvetica", "bold");
$pdf->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}",
$font, 6, array(0,0,0));
}
</script>
_
呼び出し側でこれを実装する場合(PHPコードで直接)を意味します)、基になるPDF-を返すDOMPDFSのget_canvas()
-メソッドを呼び出す必要があります。上記の例のように_page_text
_メソッドを呼び出すことができるレンダラー。
_// your dompdf setup
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
// add the header
$canvas = $dompdf->get_canvas();
$font = Font_Metrics::get_font("helvetica", "bold");
// the same call as in my previous example
$canvas->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}",
$font, 6, array(0,0,0));
_
最終的には_page_text
_の後に_load_html
_を呼び出す必要があります(試してみてください)。
このコードが必要です、私はあなたを助けることを願っています
よろしく...
# Instanciamos un objeto de la clase DOMPDF.
$dompdf = new DOMPDF();
# Definimos el tamaño y orientación del papel que queremos.
# O por defecto cogerá el que está en el fichero de configuración.
$dompdf->set_paper("Letter", "portrait");
# Cargamos el contenido HTML.
$dompdf->load_html(utf8_decode($html));
# Renderizamos el documento PDF.
$dompdf->render();
#Esto es lo que imprime en el PDF el numero de paginas
$canvas = $dompdf->get_canvas();
$footer = $canvas->open_object();
$w = $canvas->get_width();
$h = $canvas->get_height();
$canvas->page_text($w-60,$h-28,"Página {PAGE_NUM} de {PAGE_COUNT}", Font_Metrics::get_font('helvetica'),6);
$canvas->page_text($w-590,$h-28,"El pie de página del lado izquiero, Guadalajara, Jalisco C.P. XXXXX Tel. XX (XX) XXXX XXXX", Font_Metrics::get_font('helvetica'),6);
$canvas->close_object();
$canvas->add_object($footer,"all");
# Enviamos el fichero PDF al navegador.
//$dompdf->stream('FicheroEjemplo.pdf');
# Para grabar en fichero en ruta especifica
$output = $dompdf->output();
file_put_contents('ejemplo.pdf',$output);
#Liberamos
unset($dompdf);