= Generating PDFs with DOMPDF = Here is my steps of usage DOMPDF(http://www.digitaljunkies.ca/dompdf/) with Seagull, for rendering HTML articles (publisher): * make dir: lib/other/Dompdf * Copy files from dompdf to Dompdf: {{{ lib/other/Dompdf/include lib/other/Dompdf/dompdf_config.inc.php lib/other/Dompdf/lib }}} * Configure Seagull to use "lib/other" as additional include path: General -> Configuration -> Additional include paths * Sample. Modified !FileMgr from publisher/classes * Required includes (before class declaration): {{{ require_once SGL_CORE_DIR . '/Item.php'; require_once 'Dompdf/dompdf_config.inc.php'; }}} * Modify "validate" function (just place to the end of function): {{{ $input->articleID = (int)$req->get('frmArticleID'); }}} * Add new method: {{{ function _cmd_downloadPdf(&$input, &$output) { SGL::logMessage(null, PEAR_LOG_DEBUG); $aArticleDetail = SGL_Item::getItemDetail($input->articleID); $dompdf = new DOMPDF(); $dompdf->load_html($aArticleDetail['bodyHtml']); $dompdf->render(); $dompdf->stream($aArticleDetail['title'].".pdf"); exit; } }}} * Use {makeUrl()} with your templates, for example: {{{ {makeUrl(#downloadPdf#,#file#,#publisher#,aPagedData[data],#frmArticleID|item_id#,key)} }}} Or just type in address bar of your web browser(quick test): http://your_sgl_website/index.php/publisher/file/action/downloadPdf/frmArticleID/1/ This way can be easy adopted for usage with cms or any other module, but in summary it's yet another way to handle "html 2 pdf" request. == Autoload Issue == Fatal error: require_once() [function.require]: Failed opening required '/trunk/lib/other/Dompdf/include/html_template_flexy_token_doctype.cls.php' Solution - Add a check for the include file in dompdf_config.inc.php, change from: {{{ function DOMPDF_autoload($class) { $filename = mb_strtolower($class) . ".cls.php"; require_once(DOMPDF_INC_DIR . "/$filename"); } }}} '''to''' {{{ function DOMPDF_autoload($class) { $filename = mb_strtolower($class) . ".cls.php"; if(file_exists(DOMPDF_INC_DIR . "/$filename")) { require_once(DOMPDF_INC_DIR . "/$filename"); } } }}}