public function FrxMPDF::render in Forena Reports 7.4
Same name and namespace in other branches
- 7.3 docformats/FrxMPDF.inc \FrxMPDF::render()
Overrides FrxDocument::render
File
- docformats/
FrxMPDF.inc, line 30 - FrxMPDF.inc PDF document via MPDF Library @author davidmetzler
Class
- FrxMPDF
- @file FrxMPDF.inc PDF document via MPDF Library @author davidmetzler
Code
public function render($r, $format, $options = array()) {
// To Do
// The option switch off links on PDF will bee good here too
$disable_links = variable_get('forena_pdf_disable_links', TRUE);
$skin_data = Frx::Data()
->getContext('skin');
$page_data = isset($skin_data['mpdf']['page']) ? $skin_data['mpdf']['page'] : array(
'orientation' => 'P',
);
$html = $r->html;
if ($disable_links) {
$html = preg_replace('/<a href=\\"(.*?)\\">(.*?)<\\/a>/', "\\2", $html);
}
$mpdf = new mPDF('UTF-8');
$mpdf
->AddPageByArray($page_data);
$output = '<html><head>';
$output .= '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';
$css = '';
foreach (Frx::Skin()->stylesheets as $type => $sheets) {
foreach ($sheets as $sheet) {
switch ($type) {
case 'all':
case 'print':
case 'screen':
case 'pdf':
if (strpos($sheet, 'http:') === 0 || strpos($sheet, 'https:') === 0) {
$output .= " <link rel='stylesheet' type='text/css' href='{$sheet}'> \n";
}
else {
$css .= file_get_contents($sheet);
}
//echo $sheet;
break;
}
}
}
if (@$options['css'] || isset($r->rpt_xml->head->style)) {
$output .= '<style type="text/css">';
$output .= $css;
if (isset($r->rpt_xml->head->style)) {
$sheet = (string) $r->rpt_xml->head->style;
$output .= $sheet;
}
$output .= '</style>';
}
$output .= '<title>' . $r->title . "</title></head><body class='forena-report {$link_class}'><h1>" . $r->title . '</h1>' . $html;
$output .= '</body></html>';
$mpdf
->WriteHTML($output);
// $pdf = $mpdf->Output('', 'S');
$filename = basename($_GET['q']);
$pdf = $mpdf
->Output($filename, 'I');
return $pdf;
}