You are here

public function FrxMPDF::render in Forena Reports 7.3

Same name and namespace in other branches
  1. 7.4 docformats/FrxMPDF.inc \FrxMPDF::render()

Overrides FrxDocument::render

File

docformats/FrxMPDF.inc, line 26
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);
  $html = $this
    ->check_markup($r->html);
  if ($disable_links) {
    $html = preg_replace('/<a href=\\"(.*?)\\">(.*?)<\\/a>/', "\\2", $html);
  }
  $mpdf = new mPDF('UTF-8');
  $mpdf
    ->AddPageByArray(array(
    'orientation' => 'P',
  ));
  $output = '';
  $output = '<html><head>';
  $output .= '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>';
  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>';
  foreach (Frx::Skin()->stylesheets as $type => $sheets) {
    foreach ($sheets as $sheet) {
      switch ($type) {
        case 'all':
        case 'print':
        case 'screen':
        case 'pdf':
          $mpdf
            ->WriteHTML(file_get_contents($sheet), 1);

          //echo $sheet;
          break;
      }
    }
  }
  $mpdf
    ->WriteHTML($output);

  // $pdf = $mpdf->Output('', 'S');
  $file_name = basename($_GET['q']);
  $pdf = $mpdf
    ->Output($filename, 'I');
  return $pdf;
}