function report_download_pdf($html) { $doc = new pdf(); //$doc->Header(); $doc->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, 'Teleparadigm', array(), array()); $doc->setFooterData(array(0, 64, 0), array(0, 64, 128)); $doc->setPrintHeader(false); $doc->setPrintFooter(true); // set margins $doc->SetMargins(PDF_MARGIN_LEFT, 5, PDF_MARGIN_RIGHT); $doc->SetHeaderMargin(PDF_MARGIN_HEADER); $doc->SetFooterMargin(PDF_MARGIN_FOOTER); $doc->AddPage(); $doc->writeHTML($html, true, false, true, false, ''); $doc->Output(); die; }
/** * printanswers::view() * View answers at the end of a survey in one place. To export as pdf, set 'usepdfexport' = 1 in lsconfig.php and $printableexport='pdf'. * @param mixed $surveyid * @param bool $printableexport * @return */ function actionView($surveyid, $printableexport = FALSE) { Yii::app()->loadHelper("frontend"); Yii::import('application.libraries.admin.pdf'); $iSurveyID = (int) $surveyid; $sExportType = $printableexport; Yii::app()->loadHelper('database'); if (isset($_SESSION['survey_' . $iSurveyID]['sid'])) { $iSurveyID = $_SESSION['survey_' . $iSurveyID]['sid']; } else { //die('Invalid survey/session'); } // Get the survey inforamtion // Set the language for dispay if (isset($_SESSION['survey_' . $iSurveyID]['s_lang'])) { $sLanguage = $_SESSION['survey_' . $iSurveyID]['s_lang']; } elseif (Survey::model()->findByPk($iSurveyID)) { $sLanguage = Survey::model()->findByPk($iSurveyID)->language; } else { $iSurveyID = 0; $sLanguage = Yii::app()->getConfig("defaultlang"); } $clang = SetSurveyLanguage($iSurveyID, $sLanguage); $aSurveyInfo = getSurveyInfo($iSurveyID, $sLanguage); //SET THE TEMPLATE DIRECTORY if (!isset($aSurveyInfo['templatedir']) || !$aSurveyInfo['templatedir']) { $aSurveyInfo['templatedir'] = Yii::app()->getConfig('defaulttemplate'); } $sTemplate = validateTemplateDir($aSurveyInfo['templatedir']); //Survey is not finished or don't exist if (!isset($_SESSION['survey_' . $iSurveyID]['finished']) || !isset($_SESSION['survey_' . $iSurveyID]['srid'])) { sendCacheHeaders(); doHeader(); echo templatereplace(file_get_contents(getTemplatePath($sTemplate) . '/startpage.pstpl'), array()); echo "<center><br />\n" . "\t<font color='RED'><strong>" . $clang->gT("Error") . "</strong></font><br />\n" . "\t" . $clang->gT("We are sorry but your session has expired.") . "<br />" . $clang->gT("Either you have been inactive for too long, you have cookies disabled for your browser, or there were problems with your connection.") . "<br />\n" . "\t" . sprintf($clang->gT("Please contact %s ( %s ) for further assistance."), Yii::app()->getConfig("siteadminname"), Yii::app()->getConfig("siteadminemail")) . "\n" . "</center><br />\n"; echo templatereplace(file_get_contents(getTemplatePath($sTemplate) . '/endpage.pstpl'), array()); doFooter(); exit; } //Fin session time out $sSRID = $_SESSION['survey_' . $iSurveyID]['srid']; //I want to see the answers with this id //Ensure script is not run directly, avoid path disclosure //if (!isset($rootdir) || isset($_REQUEST['$rootdir'])) {die( "browse - Cannot run this script directly");} if ($aSurveyInfo['printanswers'] == 'N') { die; //Die quietly if print answers is not permitted } //CHECK IF SURVEY IS ACTIVATED AND EXISTS $sSurveyName = $aSurveyInfo['surveyls_title']; $sAnonymized = $aSurveyInfo['anonymized']; //OK. IF WE GOT THIS FAR, THEN THE SURVEY EXISTS AND IT IS ACTIVE, SO LETS GET TO WORK. //SHOW HEADER $sOutput = CHtml::form(array("printanswers/view/surveyid/{$iSurveyID}/printableexport/pdf"), 'post') . "<center><input type='submit' value='" . $clang->gT("PDF export") . "'id=\"exportbutton\"/><input type='hidden' name='printableexport' /></center></form>"; if ($sExportType == 'pdf') { //require (Yii::app()->getConfig('rootdir').'/application/config/tcpdf.php'); Yii::import('application.libraries.admin.pdf', true); Yii::import('application.helpers.pdfHelper'); $aPdfLanguageSettings = pdfHelper::getPdfLanguageSettings($clang->langcode); $oPDF = new pdf(); $oPDF->SetTitle($clang->gT("Survey name (ID)", 'unescaped') . ": {$sSurveyName} ({$iSurveyID})"); $oPDF->SetSubject($sSurveyName); $oPDF->SetDisplayMode('fullpage', 'two'); $oPDF->setLanguageArray($aPdfLanguageSettings['lg']); $oPDF->setHeaderFont(array($aPdfLanguageSettings['pdffont'], '', PDF_FONT_SIZE_MAIN)); $oPDF->setFooterFont(array($aPdfLanguageSettings['pdffont'], '', PDF_FONT_SIZE_DATA)); $oPDF->SetFont($aPdfLanguageSettings['pdffont'], '', $aPdfLanguageSettings['pdffontsize']); $oPDF->AddPage(); $oPDF->titleintopdf($clang->gT("Survey name (ID)", 'unescaped') . ": {$sSurveyName} ({$iSurveyID})"); } $sOutput .= "\t<div class='printouttitle'><strong>" . $clang->gT("Survey name (ID):") . "</strong> {$sSurveyName} ({$iSurveyID})</div><p> \n"; LimeExpressionManager::StartProcessingPage(true); // means that all variables are on the same page // Since all data are loaded, and don't need JavaScript, pretend all from Group 1 LimeExpressionManager::StartProcessingGroup(1, $aSurveyInfo['anonymized'] != "N", $iSurveyID); $printanswershonorsconditions = Yii::app()->getConfig('printanswershonorsconditions'); $aFullResponseTable = getFullResponseTable($iSurveyID, $sSRID, $sLanguage, $printanswershonorsconditions); //Get the fieldmap @TODO: do we need to filter out some fields? if ($aSurveyInfo['datestamp'] != "Y" || $sAnonymized == 'Y') { unset($aFullResponseTable['submitdate']); } else { unset($aFullResponseTable['id']); } unset($aFullResponseTable['token']); unset($aFullResponseTable['lastpage']); unset($aFullResponseTable['startlanguage']); unset($aFullResponseTable['datestamp']); unset($aFullResponseTable['startdate']); $sOutput .= "<table class='printouttable' >\n"; foreach ($aFullResponseTable as $sFieldname => $fname) { if (substr($sFieldname, 0, 4) == 'gid_') { $sOutput .= "\t<tr class='printanswersgroup'><td colspan='2'>{$fname[0]}</td></tr>\n"; } elseif (substr($sFieldname, 0, 4) == 'qid_') { $sOutput .= "\t<tr class='printanswersquestionhead'><td colspan='2'>{$fname[0]}</td></tr>\n"; } elseif ($sFieldname == 'submitdate') { if ($sAnonymized != 'Y') { $sOutput .= "\t<tr class='printanswersquestion'><td>{$fname[0]} {$fname[1]} {$sFieldname}</td><td class='printanswersanswertext'>{$fname[2]}</td></tr>"; } } else { $sOutput .= "\t<tr class='printanswersquestion'><td>{$fname[0]} {$fname[1]}</td><td class='printanswersanswertext'>" . flattenText($fname[2]) . "</td></tr>"; } } $sOutput .= "</table>\n"; $sData['thissurvey'] = $aSurveyInfo; $sOutput = templatereplace($sOutput, array(), $sData, '', $aSurveyInfo['anonymized'] == "Y", NULL, array(), true); // Do a static replacement if ($sExportType == 'pdf') { $oPDF->writeHTML($sOutput); header("Pragma: public"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); $sExportFileName = sanitize_filename($sSurveyName); $oPDF->Output($sExportFileName . "-" . $iSurveyID . ".pdf", "D"); } else { ob_start(function ($buffer, $phase) { App()->getClientScript()->render($buffer); App()->getClientScript()->reset(); return $buffer; }); ob_implicit_flush(false); sendCacheHeaders(); doHeader(); echo templatereplace(file_get_contents(getTemplatePath($sTemplate) . '/startpage.pstpl'), array(), $sData); echo templatereplace(file_get_contents(getTemplatePath($sTemplate) . '/printanswers.pstpl'), array('ANSWERTABLE' => $sOutput), $sData); echo templatereplace(file_get_contents(getTemplatePath($sTemplate) . '/endpage.pstpl'), array(), $sData); echo "</body></html>"; ob_flush(); } LimeExpressionManager::FinishProcessingGroup(); LimeExpressionManager::FinishProcessingPage(); }
function printToPdf($htmlContent) { $pdf = new pdf(); $pdf->print_header = false; $pdf->print_footer = false; $pdf->AddPage(); $pdf->writeHTML($htmlcontent, true, 0, true, 0); $pdf->output('document.pdf', 'I'); }
function export_pdf($report, $fname = '') { global $DB, $CFG; require_once($CFG->libdir . '/pdflib.php'); $table = $report->table; $matrix = array(); $fname == '' ? $filename = 'report' : $filename = $fname . '.pdf'; if (!empty($table->head)) { $countcols = count($table->head); $keys = array_keys($table->head); $lastkey = end($keys); foreach ($table->head as $key => $heading) { $matrix[0][$key] = str_replace("\n", ' ', htmlspecialchars_decode(strip_tags(nl2br($heading)))); } } if (!empty($table->data)) { foreach ($table->data as $rkey => $row) { foreach ($row as $key => $item) { $matrix[$rkey + 1][$key] = str_replace("\n", ' ', htmlspecialchars_decode(strip_tags(nl2br($item)))); } } } $table = ""; $table .="<table border=\"1\" cellpadding=\"5\"><thead><tr>"; $s = count($matrix); reset($matrix); $first_key = key($matrix); for ($i = $first_key; $i < ($first_key + 1); $i++) { foreach ($matrix[$i] as $col) { $table .="<td><b>$col</b></td>"; } } $table .="</tr></thead><tbody>"; for ($i = ($first_key + 1); $i < count($matrix); $i++) { $table .="<tr>"; foreach ($matrix[$i] as $col) { $table .="<td>$col</td>"; } $table .="</tr>"; } $table .="</tbody></table>"; $table .=""; $doc = new pdf; $doc->setPrintHeader(false); $doc->setPrintFooter(false); $doc->AddPage(); $doc->writeHTML($table); if ($fname == '') { $doc->Output(); exit; } else { $doc->Output($filename, 'F'); } }
$langconfig = $CFG->dataroot . '/lang/' . $langdir . '/langconfig.php'; } // Ignore parents here for now. $string = array(); if (is_readable($langconfig)) { include $langconfig; if (is_array($string)) { $languages[$langdir] = new stdClass(); $languages[$langdir]->langname = isset($string['thislanguage']) ? $string['thislanguage'] : '(unknown)'; $languages[$langdir]->alphabet = isset($string['alphabet']) ? '"' . $string['alphabet'] . '"' : '(no alphabet defined)'; } } } $c .= '<dl>'; foreach ($languages as $langcode => $language) { $c .= '<dt>' . $language->langname . ' (' . $langcode . ')</dt>'; $c .= '<dd>' . $language->alphabet . '</dd>'; } $c .= '</dl>'; $doc->writeHTML($c); $doc->Output('pdflibtestpage.pdf'); exit; } $PAGE->set_url('/lib/tests/other/pdflibtestpage.php'); $PAGE->set_context($context); $PAGE->set_title('PDF library test'); $PAGE->set_heading('PDF library test'); echo $OUTPUT->header(); echo $OUTPUT->heading('Press the button to generate test PDF', 2); echo $OUTPUT->continue_button(new moodle_url($PAGE->url, array('getpdf' => 1, 'fontfamily' => PDF_FONT_NAME_MAIN))); echo $OUTPUT->footer();
elseif($stu_status == 99){ $status = "-"; } else{ $status = "-"; } $tbl1="<table width=100% > <tr> <td align='left'><span><h4><b>".strtoupper(get_string('semester', 'local_semesters'))." : </span>". $sname ."</b></h4></td> <td ><span><h4><b>".get_string('gp', 'local_request')." : </span>". $sem_gpa ."</b></h4></td> <td align='right'><span><h4><b>".strtoupper(get_string('status', 'local_request'))." : </span>". $status ."</b></h4></td> </tr> </table>"; if ($sem_gpa != None) $doc->writeHTML($tbl1, true, false, false, false, ''); $i = 0; foreach ($clclasses as $cls) { $cocourseid = $DB->get_field('local_clclasses','cobaltcourseid',array('id'=>$cls->classid)); $cur_pro_sql = "SELECT * FROM {local_curriculum_plancourses} planco JOIN {local_userdata} udat on udat.curriculumid=planco.curriculumid where planco.curriculumid={$curid} and planco.courseid={$cocourseid} and udat.userid={$semuserid}"; $course_exist_incur = $DB->get_records_sql($cur_pro_sql); if($course_exist_incur) { $coursename = get_cobalt_course_grad($cls->classid); if ($i % 2 == 0) $tbl .= '<tr bgcolor="#ffffff">'; else $tbl .= '<tr bgcolor="#F5F5F5">'; $tbl .= '<td style="width:150px;">'.$coursename.'</td>'; $maxmarks=$DB->get_field('local_scheduledexams','sum(grademax) AS grademax',array('classid'=>$cls->classid));