Symfony2 プロジェクトで DOMPDF を利用できるようにするために行ったことは次のとおりです。
DinoPDF composer パッケージが必要です: php composer.phar require dino/dompdf、バージョン 0.1.1 (または dev-master)
DomPDF 初期化ファイルは、ロード プロセスのどこかで required() する必要があります。
dompdf_config.inc.php は、DOMpdf インストールへのパスを定義します。DinoPDF の配布によってライブラリ内のパスが変更されたため、次の点に注意する必要があります。
DOMPDF_INC_DIR : 主な DOMPdf クラス。DOMPdf の dinoPDF ディストリビューションでは、このフォルダーの名前が dompdf/include から dompdf/lib/DOMPDF に変更されています。
DOMPDF_LIB_DIR : 追加のリソース - フォントなど
dompdf_config.inc.php に導入した変更は次のとおりです。
/**
* The root of your DOMPDF installation
*/
define("DOMPDF_DIR", str_replace(DIRECTORY_SEPARATOR, '/', realpath(__DIR__.'/../vendor/dino/dompdf/')));
/**
* The location of the DOMPDF include directory
* Main DOMPdf classes
* In dinoPDF distribution of DOMPdf this folder is renamed from dompdf/include to dompdf/lib/DOMPDF
*/
define("DOMPDF_INC_DIR", DOMPDF_DIR . "/lib/DOMPDF");
/**
* The location of the DOMPDF lib directory
* Additional resources - fonts, etc.
* In dinoPDF distribution of DOMPdf this folder is renamed from dompdf/lib to dompdf/lib/vendor
*/
define("DOMPDF_LIB_DIR", DOMPDF_DIR . "/lib/vendor");
/** Include the custom config file if it exists */
if ( file_exists(__DIR__ . "/dompdf_config.custom.inc.php") ){
require_once(__DIR__ . "/dompdf_config.custom.inc.php");
}
def("DOMPDF_FONT_DIR", DOMPDF_LIB_DIR . "/fonts/");
これにはライブラリが正しく含まれている必要があるため、コントローラーで使用できます。このような:
/**
* @Route("/export_pdf", name="export_pdf")
*/
public function exportPDFAction($id)
{
$html =
'<html><body>'.
'<p>Put your html here, or generate it with your favourite '.
'templating system.</p>'.
'</body></html>';
$dompdf = new \DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$response = new Response();
$response->setContent($dompdf->output());
$response->setStatusCode(200);
$response->headers->set('Content-Type', 'application/pdf');
return $response;
}