private function generate_pdf($srcText, $dest) { // Set some document variables $author = ""; $x = 50; $text = "<<<EOT" . $srcText . "EOT"; // Create fpdf object $pdf = new FPDF('P', 'pt', 'Letter'); // Set base font to start $pdf->SetFont('Times', 'B', 24); // Add a new page to the document $pdf->addPage(); // Set the x,y coordinates of the cursor $pdf->SetXY($x, 50); // Write 'Simple PDF' with a line height of 1 at the current position $pdf->Write(25, 'Simple PDF'); // Reset the font $pdf->SetFont('Courier', 'I', 10); // Set the font color $pdf->SetTextColor(255, 0, 0); // Reset the cursor, write again. $pdf->SetXY($x, 75); $pdf->Cell(0, 11, "By: {$author}", 'B', 2, 'L', false); // Place an image on the pdf document //$pdf->Image('graph.jpg', $x, 100, 150, 112.5, 'JPG'); // Reset font, color, and coordinates $pdf->SetFont('Arial', '', 12); $pdf->SetTextColor(0, 0, 0); $pdf->SetXY($x, 250); // Write out a long text blurb. $pdf->write(13, $srcText); // echo "<pre>"; // print_r($pdf);exit; $fileName = substr($dest, 0, strpos($dest, '.')) . "_" . time() . '.pdf'; $pdf->Output($fileName, 'F'); }
function construct($svg, $data = array()) { $t = new XML_SvgToPDF(); $x = new XML_Tree_Morph($svg, array('debug' => 0, 'filter' => array('svg' => array(&$t, 'buildObject'), 'text' => array(&$t, 'buildObject'), 'tspan' => array(&$t, 'buildObject'), 'rect' => array(&$t, 'buildObject'), 'g' => array(&$t, 'buildObject'), 'path' => array(&$t, 'buildObject'), 'sodipodi:namedview' => array(&$t, 'buildNull'), 'defs' => array(&$t, 'buildNull')))); $tree = $x->getTreeFromFile(); $tree = $t->buildobject($tree); $orientation = $tree->width > $tree->height ? 'L' : 'P'; $pdf = new FPDF($orientation, 'mm', 'A4'); $pdf->open(); $pdf->setAutoPageBreak(false); $pdf->AliasNbPages(); // convert data to array. if (is_object($data)) { $data = (array) $data; } // no data page.. if (empty($data)) { $pdf->addPage(); $tree->writePDF($pdf, $data); $t->debug($tree); return $pdf; } // work out how many pages... list($var, $perpage) = $tree->calcPerPage(); if ($var == '') { die('No dynamic group found'); } if (!isset($data[$var])) { die('Incorrect dynamic group name'); } $alldata = $data[$var]; $page = 0; while (count($alldata)) { $page++; $t->debug("<B>PAGE {$page}<B>"); $page_data = array_splice($alldata, 0, $perpage); $data[$var] = $page_data; $pdf->addPage(); $tree->writePDF($pdf, $data); } $t->debug($tree); return $pdf; }
/** * Wrapper for FPDF::addPage. It uses a template for every page and counts pages if desired. * * @param string See FPDF::addPage for this parameter, defaults to 'P' when null * @param string Template to use, defaults to './templates/invoice_template.pdf' when null * @param bool If we should count pages. Always uses last value when null. * * @author Former03 GmbH :: Florian Lippert <*****@*****.**> */ function addPage($orientation = null, $template = null, $count = null) { if ($orientation == null) { $orientation = 'P'; } parent::addPage($orientation); if ($count !== null) { $this->_count_pages = $count; } if ($this->_count_pages === true) { $this->_my_page_count++; } /* if($template == null) { $template = './templates/invoice_template.pdf'; } $pagecount = $this->setSourceFile($template); $tplidx = $this->ImportPage(1); $this->useTemplate($tplidx, 0, 0, false);*/ }
<?php define('FPDF_FONTPATH', '.'); require '../../fpdf.php'; $pdf = new FPDF(); $pdf->addFont('Calligrapher', '', 'calligra.php'); $pdf->addPage(); $pdf->setFont('Calligrapher', '', 35); $pdf->cell(0, 10, 'Enjoy new fonts with FPDF!'); $pdf->output();
public function report_content() { if (FormLib::get('excel') == '1099') { $data = $this->fetch_report_data(); $pdf = new FPDF('P', 'mm', 'Letter'); $bridge = GumLib::getSetting('posLayer'); $year = date('Y', strtotime(FormLib::get('endDate'))); foreach ($data as $row) { $custdata = $bridge::getCustdata($row[0]); $meminfo = $bridge::getMeminfo($row[0]); $ssn = $row[10] == 'No key' ? $row[9] : $row[10]; $amount = array(1 => $row[8]); $form = new GumTaxFormTemplate($custdata, $meminfo, $ssn, $tax_year, $amount); $pdf->addPage(); $form->renderAsPDF($pdf, 15); } $pdf->Output('taxform.pdf', 'I'); } else { return parent::report_content(); } }
public static function appendApprovalSignature($path_to_dir,$filename,$page=''){ //do nothing need to be changed require(Yii::app()->basePath.'/extensions/Fpdf/fpdf.php'); require(Yii::app()->basePath.'/extensions/Fpdi/fpdi.php'); $pdf = new FPDF(); $pdf->setSourceFile($path_to_dir.'/'.$filename); $tplIdx = $pdf->importPage(1, '/MediaBox'); $pdf->addPage(); $pdf->useTemplate($tplIdx, true); //die("after set sourse"); try{ $pdf->SetFont('Helvetica','B',20); $pdf->SetTextColor(255,0,0); $pdf->SetXY (10,5); $pdf->SetFontSize(10); $pdf->Write(5,'VOID void VOID void VOID void VOID void VOID void VOID void VOID void VOID void VOID void VOID '); $pdf->Output($path_to_dir.'/'.$filename,'F'); }catch (Exception $e) { $result['error']="Could not render this file"; die('Could not render this file'); } $result['path_to_dir']=$path_to_dir; $result['filename']=$filename; $result['ext']='pdf'; return $result; }
<?php require '../../fpdf.php'; $pdf = new FPDF(); $pdf->addPage()->setFont('Arial', 'B', 16)->cell(40, 10, 'Hello World!')->output('Doc.pdf', 'D');
/** * generatePDF - Génère un fichier PDF à partir des données d'évaluation d'un service * * @category : eval_ccpc_functions * @param array $data Données d'évaluation récupérées à partir de la fonction {@link getEvaluationCCPCFullData()} * @param boolean $comment TRUE si on incut les commentaire, FALSE si on ne les inclut pas * @param boolean $commentMSG TRUE si on incut un message concernant la CSG, FALSE si on ne l'inclut pas * @return array Array contenant les informations du fichier généré * * @Author Ali Bellamine * * Contenu de l'array retourné :<br> * ['pdfPath'] => (string) Chemin local vers le fichier généré<br> * ['pdfURI'] => (string) URI pointant vers le fichier généré * */ function generatePDF($data, $comment = FALSE, $commentMSG = FALSE) { // Accès à la BDD global $db; // Array contenant les résultats $output = array(); // On vérifie l'existence des données if (isset($data) && count($data) > 0) { /* Mise en cache */ // Calcul du md5 $hashdata = $data; $hashdata['optionsPDF'] = array('comment' => $comment, 'commentMSG' => $commentMSG); $hash = md5(json_encode($hashdata)); $pdfPath = PLUGIN_PATH . 'cache/' . $hash . '.pdf'; $pdfPathURI = ROOT . 'evaluations/ccpc/cache/' . $hash . '.pdf'; if (is_file($pdfPath)) { $output['pdfPath'] = $pdfPath; $output['pdfURI'] = $pdfPathURI; return $output; } else { // On charge la librairie require_once PLUGIN_PATH . 'core/fpdf17/fpdf.php'; // On charge le fichier XML if (is_file(PLUGIN_PATH . 'formulaire.xml')) { $form = simplexml_load_file(PLUGIN_PATH . 'formulaire.xml'); } // Promotion if (count($data['service']['promotion']) > 1) { $promotion = false; } else { foreach ($data['service']['promotion'] as $promotionData) { $promotion = $promotionData['id']; } } try { ob_end_clean(); } catch (Exception $e) { } // On crée le PDF $A4Height = 842; $A4Width = 595; $titleSize = 15; $textSize = 11; $pdf = new FPDF('L', 'pt', 'A4'); $pdf->SetTopMargin(10); $pdf->SetLeftMargin(15); $pdf->SetAutoPageBreak(TRUE, 10); /** Page contenant le résumé des données d'évaluation **/ $pdf->AddPage(); $pdf->SetFont('Arial', 'B', $titleSize); // On affiche le titre $pdf->SetFillColor(70, 70, 242); $pdf->SetTextColor(255, 255, 255); $pdf->SetX(floor(0.1 * $A4Height)); $pdf->Cell(floor(0.8 * $A4Height), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_TITLE), 'LRTB', 0, 'C', TRUE); // Première ligne $pdf->Ln(2 * $titleSize); $pdf->SetFont('Arial', '', $textSize); // On affiche les informations concernant le service // Récupération des données $textToDisplay = LANG_FORM_CCPC_FILTER_SERVICE_TITLE . ' : ' . $data['service']['FullName'] . PHP_EOL . LANG_FORM_CCPC_PDF_STAGEPERIODE . ' : ' . date('d/m/Y', $data['service']['date']['min']) . ' - ' . date('d/m/Y', $data['service']['date']['max']); // Nombre d'étudiants par promotion $nbEtudiantsService = array(); $sql = 'SELECT p.nom promotion, COUNT( ae.userId ) nombre FROM `affectationexterne` ae INNER JOIN user u ON u.id = ae.userId INNER JOIN promotion p ON p.id = u.promotion WHERE `dateDebut` >= "' . TimestampToDatetime($data['service']['date']['min']) . '" AND `dateFin` <= "' . TimestampToDatetime($data['service']['date']['max']) . '" AND service = ' . $data['service']['id'] . ' GROUP BY u.promotion'; $res = $db->query($sql); while ($res_f = $res->fetch()) { $nbEtudiantsService[$res_f['promotion']] = $res_f['nombre']; } $firstLoop = true; if (count($nbEtudiantsService) > 0) { $textToDisplay .= PHP_EOL . LANG_FORM_CCPC_PDF_STUDENTPROMOTION . ' : '; foreach ($nbEtudiantsService as $promotionNom => $promotionNombre) { if (!$firstLoop) { $textToDisplay .= ', '; } else { $firstLoop = FALSE; } $textToDisplay .= $promotionNom . ' (' . $promotionNombre . ')'; } } $textToDisplay .= PHP_EOL . LANG_FORM_CCPC_PDF_STUDENTNB . ' : ' . $data['service']['nbEvaluation'] . PHP_EOL . LANG_FORM_CCPC_PDF_EVALUATIONNB . ' : ' . $data['nb']; $textToDisplay = utf8_decode($textToDisplay); // Affichage $pdf->SetFillColor(231, 231, 231); $pdf->SetTextColor(0, 0, 0); $pdf->MultiCell(floor(0.35 * $A4Height), $textSize + 5, $textToDisplay, 'LRTB', 'L', TRUE); // On affiche les graphiques : mainGraphPDF // Récupération des données // Liste des graphiques à afficher $input = $form->xpath('categorie/input[@mainPDFGraph="1"]'); $nbGraph = count($input); // Nombre de graphiques à intégrer // On génère $tempData, contenant les données utilisées pour génération du png foreach ($input as $select) { if ($select['type'] == 'select') { $categorie = $select->xpath('..')[0]; // Catégorie du graphique $tempData = array(); $tempData['settings'] = array('width' => 450, 'height' => 230); foreach ($select->option as $option) { if (isset($data[(string) $categorie['nom']][(string) $select['nomBDD']]['nb'][(string) $option['value']])) { $value = $data[(string) $categorie['nom']][(string) $select['nomBDD']]['nb'][(string) $option['value']]; if (is_numeric($value)) { $tempData['data'][constant((string) $option['text'])] = $value; } else { $tempData['data'][constant((string) $option['text'])] = 0; } } else { $tempData['data'][constant((string) $option['text'])] = 0; } } // On inclut l'image $pdf->Image(eval_ccpc_genGraphPie($tempData), 0.4 * $A4Height, 3 * $titleSize, floor(0.4 * $A4Height), 0, 'PNG'); break; } } // On affiche l'icone des filtres : maximum 4 $filtres = eval_ccpc_checkFilterExistence($data['service']['id'], $data['service']['date']['min'], $data['service']['date']['max'], $promotion); $numberOfIcons = 0; // Compte le nombre d'icones ajoutées $leftCornerX = 0.8 * $A4Height - 5; $leftCornerY = 3 * $titleSize - 5; if (is_array($filtres)) { foreach ($filtres as $filtre) { if (isset($filtre['icone']) && strlen($filtre['icone']) > 1 && $numberOfIcons < 4) { $pdf->Image($filtre['icone'], $leftCornerX, $leftCornerY, floor(0.1 * $A4Height), 0, 'PNG'); $numberOfIcons++; if ($numberOfIcons == 1) { $leftCornerX = 0.9 * $A4Height - 3; } else { if ($numberOfIcons == 2) { $leftCornerX = 0.8 * $A4Height - 5; $leftCornerY += 0.1 * $A4Height + 1; } else { if ($numberOfIcons == 3) { $leftCornerX = 0.9 * $A4Height - 3; } } } break; } } } if ($numberOfIcons == 0) { // On ajoute l'icone neutre si aucune icone n'est présente $pdf->Image(PLUGIN_PATH . '/css/img/neutral.png', $leftCornerX, $leftCornerY, floor(0.1 * $A4Height), 0, 'PNG'); } // Deuxième ligne $pdf->Ln(8 * $titleSize); // On affiche le radar sur 1 an de données $fullYearData = getEvaluationCCPCFullData($data['service']['id'], $promotion, $data['service']['date']['max'] - 31536000, $data['service']['date']['max'], FALSE); // Récupération des données // Titre $pdf->Cell(floor(0.4 * $A4Height), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_STAGEPERIODE_FULLYEAR . ' (' . date('d/m/Y', $fullYearData['service']['date']['min']) . ' ' . LANG_FORM_CCPC_PDF_STAGEPERIODE_END . ' ' . date('d/m/Y', $fullYearData['service']['date']['max']) . ')'), 0, 0, 'C', FALSE); // On affiche l'image // Liste des valeurs à afficher $input = $form->xpath('categorie/input[@radarPDFGraph="1"]'); // Préparation des données $tempData = array(); $tempData['settings'] = array('height' => 380, 'width' => 680, 'max' => 10); foreach ($input as $theinput) { // Récupération du parent $categorie = $theinput->xpath('..')[0]; // Catégorie du graphique if (isset($data[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'])) { $tempData['data'][constant($theinput['label'] . '_SHORT')] = $fullYearData[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'] + 5; } } // Affichage de l'image $pdf->Image(eval_ccpc_genGraphRadar($tempData), 10, $pdf->getY() + 40, floor(0.4 * $A4Height), 0, 'PNG'); // On affiche le radar sur la période du stage // On décale du 0.05*largeur $pdf->Cell(floor(0.05 * $A4Height)); // On crée un rectangle contenant les données $pdf->Rect($pdf->getX(), $pdf->getY() - 10, 0.5 * $A4Height, 0.3 * $A4Height, 'F'); // Titre $pdf->Cell(floor(0.5 * $A4Height), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_STAGEPERIODE_START . ' ' . date('d/m/Y', $data['service']['date']['min']) . ' ' . LANG_FORM_CCPC_PDF_STAGEPERIODE_END . ' ' . date('d/m/Y', $data['service']['date']['max'])), 0, 0, 'C', FALSE); // On ajoute l'image // Liste des valeurs à afficher $input = $form->xpath('categorie/input[@radarPDFGraph="1"]'); // Préparation des données $tempData = array(); $tempData['settings'] = array('height' => 380, 'width' => 650, 'max' => 10); foreach ($input as $theinput) { // Récupération du parent $categorie = $theinput->xpath('..')[0]; // Catégorie du graphique if (isset($data[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'])) { $tempData['data'][constant($theinput['label'] . '_SHORT')] = $data[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'] + 5; } } // Affichage de l'image $pdf->Image(eval_ccpc_genGraphRadar($tempData), $pdf->getX() - 0.45 * $A4Height, $pdf->getY() + 40, floor(0.4 * $A4Height), 0, 'PNG'); // Affiche du logo $pdf->Image(ROOT . 'theme/img/logo.png', 10, $A4Width - 100, 0, 50, 'PNG'); // Pied de Page $pdf->SetX(0.5 * $A4Height); $pdf->SetY($A4Width - 40); $textSize = 10; $pdf->SetFont('Arial', 'I', $textSize); // Ligne de demarcation $pdf->Line(15, $pdf->getY(), $A4Height - 15, $pdf->getY()); // Accès aux résultats $pdf->SetX(0.5 * $A4Height); $pdf->Cell(0.5 * $A4Height - 15, $textSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_FOOTER_FULLRESULT . ' ' . getPageUrl('evalView', array('evaluationType' => 1, 'service' => $data['service']['id']))), 0, 1, 'R', 0); // Coordonées CSG if ($commentMSG) { $pdf->SetFont('Arial', 'B', $textSize); $pdf->SetX(15); $pdf->Cell($A4Height - 15, $textSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_FOOTER_STRUCTURENAME . ' - ' . CONTACT_STAGE_MAIL), 0, 0, 'C', 0); } /** Commentaires **/ // Ajout des commentaires, points positifs et points négatifs : 'pdfComment' if ($comment) { $pdf->addPage('P', 'A4'); // Titre $pdf->SetFont('Arial', 'B', $titleSize); $pdf->SetFillColor(70, 70, 242); $pdf->SetTextColor(255, 255, 255); $pdf->SetX(floor(0.1 * $A4Width)); $pdf->Cell(floor(0.8 * $A4Width), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_COMMENT_TITLE), 'LRTB', 1, 'C', TRUE); $pdf->SetTextColor(0, 0, 0); $pdf->SetFillColor(245, 245, 245); // Les commentaires $input = $form->xpath('categorie/input[@pdfComment="1"]'); foreach ($input as $theinput) { $categorie = $theinput->xpath('..')[0]; if ($theinput['type'] == 'text') { // Création de l'array contenant les données à afficher sous forme [timestamp fin][timestamp début][timestamp commantaire][idMessage][] => message $tempData = array(); foreach ($theinput->text as $value) { if (isset($data[(string) $categorie['nom']][(string) $value['nomBDD']])) { foreach ($data[(string) $categorie['nom']][(string) $value['nomBDD']] as $idEval => $textValue) { if (isset($data['donnees'][$idEval]['infos'])) { $tempData[$data['donnees'][$idEval]['infos']['dateFin']][$data['donnees'][$idEval]['infos']['dateDebut']][$data['donnees'][$idEval]['infos']['date']][$idEval][] = $textValue; } } } } $textArea = ''; $firstLoop = TRUE; // On affiche les commentaires krsort($tempData); foreach ($tempData as $dateFin => $tempvalue) { krsort($tempvalue); foreach ($tempvalue as $dateDebut => $value2) { krsort($value2); foreach ($value2 as $date => $value3) { foreach ($value3 as $commentId => $comments) { foreach ($comments as $comment) { if ($comment != '') { if (!$firstLoop) { $textArea .= PHP_EOL . PHP_EOL; } else { $firstLoop = FALSE; } // Saut de ligne $textArea .= $comment . ' - ' . date('d/m/Y', $date) . ' #' . $commentId; } } } } } } if ($textArea != '') { // On affiche les textes dans le PDF $pdf->Ln(20); $pdf->SetX(20); $pdf->setFont('Arial', '', $titleSize); $pdf->Cell(0, $titleSize + 5, utf8_decode(constant($theinput['label'] . '_SHORT')), 0, 1, 'L', FALSE); $pdf->setFont('Arial', '', $textSize); $pdf->SetX(20); $pdf->MultiCell($A4Width - 40, $textSize + 5, utf8_decode($textArea), 'LTRB', 'L', TRUE); } } else { if ($theinput['type'] == 'textarea') { // Création de l'array contenant les données à afficher sous forme [timestamp fin][timestamp début][timestamp commantaire][idCommentaire] => commentaire $tempData = array(); foreach ($data[(string) $categorie['nom']][(string) $theinput['nomBDD']] as $commentId => $commentData) { if (isset($data['donnees'][$commentId]['infos'])) { $tempData[$data['donnees'][$commentId]['infos']['dateFin']][$data['donnees'][$commentId]['infos']['dateDebut']][$data['donnees'][$commentId]['infos']['date']][$commentId] = $commentData; } } $textArea = ''; $firstLoop = TRUE; // On affiche les commentaires krsort($tempData); foreach ($tempData as $dateFin => $tempvalue) { krsort($tempvalue); foreach ($tempvalue as $dateDebut => $value2) { krsort($value2); foreach ($value2 as $date => $value3) { foreach ($value3 as $commentId => $comment) { if ($comment != '') { if (!$firstLoop) { $textArea .= PHP_EOL . PHP_EOL; } else { $firstLoop = FALSE; } // Saut de ligne $textArea .= $comment . ' - ' . date('d/m/Y', $date) . ' #' . $commentId; } } } } } if ($textArea != '') { // On affiche les textes dans le PDF $pdf->Ln(20); $pdf->SetX(20); $pdf->setFont('Arial', '', $titleSize); $pdf->Cell(0 * $A4Width, $titleSize + 5, utf8_decode(constant($theinput['label'] . '_SHORT')), 0, 1, 'L', FALSE); $pdf->setFont('Arial', '', $textSize); $pdf->SetX(20); $pdf->MultiCell($A4Width - 40, $textSize + 5, utf8_decode($textArea), 'LTRB', 'L', TRUE); } } } } } // On retourne le fichier PDF $pdf->Output($pdfPath, 'F'); $output['pdfPath'] = $pdfPath; $output['pdfURI'] = $pdfPathURI; return $output; } exit; } else { return FALSE; } }
/** * generatePDF - Génère un fichier PDF à partir des données d'évaluation d'un service * * @category : eval_ccpc_functions * @param array $data Données d'évaluation récupérées à partir de la fonction {@link getEvaluationCCPCFullData()} * @param boolean $comment TRUE si on incut les commentaire, FALSE si on ne les inclut pas * @param boolean $commentMSG TRUE si on incut un message concernant la CSG, FALSE si on ne l'inclut pas * @return array Array contenant les informations du fichier généré * * @Author Ali Bellamine * * Contenu de l'array retourné :<br> * ['pdfPath'] => (string) Chemin local vers le fichier généré<br> * ['pdfURI'] => (string) URI pointant vers le fichier généré * */ function generatePDF($data, $comment = FALSE, $commentMSG = FALSE) { // Array contenant les résultats $output = array(); // On vérifie l'existence des données if (isset($data) && count($data) > 0) { /* Mise en cache */ // Calcul du md5 $hashdata = $data; $hashdata['optionsPDF'] = array('comment' => $comment, 'commentMSG' => $commentMSG); $hash = md5(json_encode($hashdata)); $pdfPath = PLUGIN_PATH . 'cache/' . $hash . '.pdf'; $pdfPathURI = ROOT . 'evaluations/ccpc/cache/' . $hash . '.pdf'; if (is_file($pdfPath)) { $output['pdfPath'] = $pdfPath; $output['pdfURI'] = $pdfPathURI; return $output; } else { // On charge la librairie require_once PLUGIN_PATH . 'core/fpdf17/fpdf.php'; // On charge le fichier XML if (is_file(PLUGIN_PATH . 'formulaire.xml')) { $form = simplexml_load_file(PLUGIN_PATH . 'formulaire.xml'); } // Promotion if (count($data['service']['promotion']) > 1) { $promotion = false; } else { foreach ($data['service']['promotion'] as $promotionData) { $promotion = $promotionData['id']; } } ob_end_clean(); // On crée le PDF $A4Height = 842; $A4Width = 595; $titleSize = 15; $textSize = 11; $pdf = new FPDF('L', 'pt', 'A4'); $pdf->SetTopMargin(10); $pdf->SetLeftMargin(15); $pdf->SetAutoPageBreak(TRUE, 10); /** Page contenant le résumé des données d'évaluation **/ $pdf->AddPage(); $pdf->SetFont('Arial', 'B', $titleSize); // On affiche le titre $pdf->SetFillColor(70, 70, 242); $pdf->SetTextColor(255, 255, 255); $pdf->SetX(floor(0.1 * $A4Height)); $pdf->Cell(floor(0.8 * $A4Height), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_TITLE), 'LRTB', 0, 'C', TRUE); // Première ligne $pdf->Ln(2 * $titleSize); $pdf->SetFont('Arial', '', $textSize); // On affiche les informations concernant le service // Récupération des données $textToDisplay = LANG_FORM_CCPC_FILTER_SERVICE_TITLE . ' : ' . $data['service']['FullName'] . PHP_EOL . LANG_FORM_CCPC_PDF_STAGEPERIODE . ' : ' . date('d/m/Y', $data['service']['date']['min']) . ' - ' . date('d/m/Y', $data['service']['date']['max']) . PHP_EOL . LANG_FORM_CCPC_PDF_STUDENTPROMOTION . ' : '; $firstLoop = true; foreach ($data['service']['promotion'] as $promotionData) { if (!$firstLoop) { $textToDisplay .= ', '; } else { $firstLoop = FALSE; } $textToDisplay .= $promotionData['nom'] . ' (' . $promotionData['nb'] . ')'; } $textToDisplay .= PHP_EOL . LANG_FORM_CCPC_PDF_STUDENTNB . ' : ' . $data['service']['nbEvaluation'] . PHP_EOL . LANG_FORM_CCPC_PDF_EVALUATIONNB . ' : ' . $data['nb']; $textToDisplay = utf8_decode($textToDisplay); // Affichage $pdf->SetFillColor(231, 231, 231); $pdf->SetTextColor(0, 0, 0); $pdf->MultiCell(floor(0.35 * $A4Height), $textSize + 5, $textToDisplay, 'LRTB', 'L', TRUE); // On affiche les graphiques : mainGraphPDF // Récupération des données // Liste des graphiques à afficher $input = $form->xpath('categorie/input[@mainPDFGraph="1"]'); $nbGraph = count($input); // Nombre de graphiques à intégrer // On génère $tempData, contenant les données utilisées pour génération du png foreach ($input as $select) { if ($select['type'] == 'select') { $categorie = $select->xpath('..')[0]; // Catégorie du graphique $tempData = array(); $tempData['settings'] = array('width' => 450, 'height' => 230); foreach ($select->option as $option) { if (isset($data[(string) $categorie['nom']][(string) $select['nomBDD']]['nb'][(string) $option['value']])) { $value = $data[(string) $categorie['nom']][(string) $select['nomBDD']]['nb'][(string) $option['value']]; if (is_numeric($value)) { $tempData['data'][constant((string) $option['text'])] = $value; } else { $tempData['data'][constant((string) $option['text'])] = 0; } } else { $tempData['data'][constant((string) $option['text'])] = 0; } } // On inclut l'image $pdf->Image(eval_ccpc_genGraphPie($tempData), 0.4 * $A4Height, 3 * $titleSize, floor(0.4 * $A4Height), 0, 'PNG'); break; } } // On affiche l'icone des filtres $filtres = eval_ccpc_checkFilterExistence($data['service']['id'], $data['service']['date']['min'], $data['service']['date']['max'], $promotion); if (is_array($filtres)) { foreach ($filtres as $filtre) { if (isset($filtre['icone'])) { $pdf->Image($filtre['icone'], 0.8 * $A4Height, 3 * $titleSize, floor(0.2 * $A4Height), 0, 'PNG'); break; } } } // Deuxième ligne $pdf->Ln(8 * $titleSize); // On affiche le radar sur 1 an de données $fullYearData = getEvaluationCCPCFullData($data['service']['id'], $promotion, $data['service']['date']['max'] - 31536000, $data['service']['date']['max'], FALSE); // Récupération des données // Titre $pdf->Cell(floor(0.4 * $A4Height), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_STAGEPERIODE_FULLYEAR . ' (' . date('d/m/Y', $fullYearData['service']['date']['min']) . ' ' . LANG_FORM_CCPC_PDF_STAGEPERIODE_END . ' ' . date('d/m/Y', $fullYearData['service']['date']['max']) . ')'), 0, 0, 'C', FALSE); // On affiche l'image // Liste des valeurs à afficher $input = $form->xpath('categorie/input[@radarPDFGraph="1"]'); // Préparation des données $tempData = array(); $tempData['settings'] = array('height' => 380, 'width' => 680, 'max' => 10); foreach ($input as $theinput) { // Récupération du parent $categorie = $theinput->xpath('..')[0]; // Catégorie du graphique if (isset($data[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'])) { $tempData['data'][constant($theinput['label'] . '_SHORT')] = $fullYearData[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'] + 5; } } // Affichage de l'image $pdf->Image(eval_ccpc_genGraphRadar($tempData), 10, $pdf->getY() + 40, floor(0.4 * $A4Height), 0, 'PNG'); // On affiche le radar sur la période du stage // On décale du 0.05*largeur $pdf->Cell(floor(0.05 * $A4Height)); // On crée un rectangle contenant les données $pdf->Rect($pdf->getX(), $pdf->getY() - 10, 0.5 * $A4Height, 0.3 * $A4Height, 'F'); // Titre $pdf->Cell(floor(0.5 * $A4Height), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_STAGEPERIODE_START . ' ' . date('d/m/Y', $data['service']['date']['min']) . ' ' . LANG_FORM_CCPC_PDF_STAGEPERIODE_END . ' ' . date('d/m/Y', $data['service']['date']['max'])), 0, 0, 'C', FALSE); // On ajoute l'image // Liste des valeurs à afficher $input = $form->xpath('categorie/input[@radarPDFGraph="1"]'); // Préparation des données $tempData = array(); $tempData['settings'] = array('height' => 380, 'width' => 650, 'max' => 10); foreach ($input as $theinput) { // Récupération du parent $categorie = $theinput->xpath('..')[0]; // Catégorie du graphique if (isset($data[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'])) { $tempData['data'][constant($theinput['label'] . '_SHORT')] = $data[(string) $categorie['nom']][(string) $theinput['nomBDD']]['moyenne'] + 5; } } // Affichage de l'image $pdf->Image(eval_ccpc_genGraphRadar($tempData), $pdf->getX() - 0.45 * $A4Height, $pdf->getY() + 40, floor(0.4 * $A4Height), 0, 'PNG'); // Affiche du logo $pdf->Image(ROOT . 'theme/img/logo.png', 10, $A4Width - 100, 0, 50, 'PNG'); // Pied de Page $pdf->SetX(0.5 * $A4Height); $pdf->SetY($A4Width - 40); $textSize = 10; $pdf->SetFont('Arial', 'I', $textSize); // Ligne de demarcation $pdf->Line(15, $pdf->getY(), $A4Height - 15, $pdf->getY()); // Accès aux résultats $pdf->SetX(0.5 * $A4Height); $pdf->Cell(0.5 * $A4Height - 15, $textSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_FOOTER_FULLRESULT . ' ' . getPageUrl('evalView', array('evaluationType' => 1, 'service' => $data['service']['id']))), 0, 1, 'R', 0); // Coordonées CSG if ($commentMSG) { $pdf->SetFont('Arial', 'B', $textSize); $pdf->SetX(15); $pdf->Cell($A4Height - 15, $textSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_FOOTER_STRUCTURENAME . ' - ' . CONTACT_STAGE_MAIL), 0, 0, 'C', 0); } /** Commentaires **/ // Ajout des commentaires, points positifs et points négatifs : 'pdfComment' if ($comment) { $pdf->addPage('P', 'A4'); // Titre $pdf->SetFont('Arial', 'B', $titleSize); $pdf->SetFillColor(70, 70, 242); $pdf->SetTextColor(255, 255, 255); $pdf->SetX(floor(0.1 * $A4Width)); $pdf->Cell(floor(0.8 * $A4Width), $titleSize + 5, utf8_decode(LANG_FORM_CCPC_PDF_COMMENT_TITLE), 'LRTB', 1, 'C', TRUE); $pdf->SetTextColor(0, 0, 0); $pdf->SetFillColor(245, 245, 245); // Les commentaires $input = $form->xpath('categorie/input[@pdfComment="1"]'); foreach ($input as $theinput) { $categorie = $theinput->xpath('..')[0]; if ($theinput['type'] == 'text') { $textArea = ''; $firstLoop = TRUE; foreach ($theinput->text as $text) { if (isset($data[(string) $categorie['nom']][(string) $text['nomBDD']])) { foreach ($data[(string) $categorie['nom']][(string) $text['nomBDD']] as $comment) { if ($comment != '') { if (!$firstLoop) { $textArea .= PHP_EOL . PHP_EOL; } else { $firstLoop = FALSE; } // Saut de ligne $textArea .= $comment; } } } } if ($textArea != '') { // On affiche les textes dans le PDF $pdf->Ln(20); $pdf->SetX(20); $pdf->setFont('Arial', '', $titleSize); $pdf->Cell(0, $titleSize + 5, utf8_decode(constant($theinput['label'] . '_SHORT')), 0, 1, 'L', FALSE); $pdf->setFont('Arial', '', $textSize); $pdf->SetX(20); $pdf->MultiCell($A4Width - 40, $textSize + 5, utf8_decode($textArea), 'LTRB', 'L', TRUE); } } else { if ($theinput['type'] == 'textarea') { $textArea = ''; $firstLoop = TRUE; if (isset($data[(string) $categorie['nom']][(string) $theinput['nomBDD']])) { foreach ($data[(string) $categorie['nom']][(string) $theinput['nomBDD']] as $comment) { if (!$firstLoop) { $textArea .= PHP_EOL . PHP_EOL; } else { $firstLoop = FALSE; } // Saut de ligne $textArea .= $comment; } } if ($textArea != '') { // On affiche les textes dans le PDF $pdf->Ln(20); $pdf->SetX(20); $pdf->setFont('Arial', '', $titleSize); $pdf->Cell(0 * $A4Width, $titleSize + 5, utf8_decode(constant($theinput['label'] . '_SHORT')), 0, 1, 'L', FALSE); $pdf->setFont('Arial', '', $textSize); $pdf->SetX(20); $pdf->MultiCell($A4Width - 40, $textSize + 5, utf8_decode($textArea), 'LTRB', 'L', TRUE); } } } } } // On retourne le fichier PDF $pdf->Output($pdfPath, 'F'); $output['pdfPath'] = $pdfPath; $output['pdfURI'] = $pdfPathURI; return $output; } exit; } else { return FALSE; } }
public function makepdf() { global $user; // Get required files. require_once 'others/fpdf/fpdf.php'; // Set some document variables $author = "eduCloud"; $x = 35; $text = <<<EOT Hello EOT; // Create fpdf object $pdf = new FPDF('P', 'pt', 'Letter'); // Set base font to start $pdf->SetFont('Arial', 'B', 16); // Add a new page to the document $pdf->addPage(); $pdf->setLeftMargin($x); //page border $pdf->Line(35, 30, 35, 750); $pdf->Line(35, 30, 575, 30); $pdf->Line(575, 30, 575, 750); $pdf->Line(575, 750, 35, 750); //end of page border // Set the x,y coordinates of the cursor $pdf->SetXY($x + 20, 40); // Write 'Simple PDF' with a line height of 1 at the current position $pdf->Write(25, 'Employee Details'); $pdf->Image($_SERVER['DOCUMENT_ROOT'] . '/cloud/images/school_logo.jpg', 500, 35, 50, 50, 'JPG'); // Reset the font // Reset font, color, and coordinates $pdf->SetFont('Arial', '', 12); $pdf->SetTextColor(0, 0, 0); $pdf->SetLeftMargin($x + 50); $pdf->setXY($x + 50, 90); global $objPDO; require_once $_SERVER['DOCUMENT_ROOT'] . '/cloud/model/teacher_class.php'; $record = new Teacher($objPDO); if ($user->checkAdmin()) { $eid = $_GET['uid']; } else { $student = new Student($objPDO, $user->getuserId()); $eid = $student->getID(); } $record->loadByUserId($eid); // Write out a long text blurb. //$array=$record->getAsArray(); //$x=0; /* TEMPLATE 1 DESIGN*/ $pdf->SetFont('Arial', '', 8); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'Employee Id (reference) : ' . $record->getTeacherId(), 0, 1, 'L', true); $pdf->SetFont('Arial', '', 12); $pdf->setFillColor(50, 50, 50); $pdf->setTextColor(255, 255, 255); $pdf->cell(450, 20, 'Employee Details', 0, 1, 'C', true); $pdf->setTextColor(0, 0, 0); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'Employee Name', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getName(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'Qualification', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getQualification(), 0, 1, 'C', true); require_once $_SERVER['DOCUMENT_ROOT'] . '/cloud/model/subject_class.php'; $subject_id = new Subject($objPDO); $subject_id->setID($record->getSubjectId()); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'Subject', 0, 0, 'C', true); $pdf->cell(250, 20, $subject_id->getName(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'Date Of Birth', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getDateOfBirth(), 0, 1, 'C', true); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'Gender', 0, 0, 'C', true); $pdf->cell(250, 20, ucfirst($record->getGender()), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'Blood Group', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getBloodGroup(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, '', 0, 0, 'C', true); $pdf->cell(250, 20, '', 0, 1, 'C', true); $pdf->setFillColor(50, 50, 50); $pdf->setTextColor(255, 255, 255); $pdf->cell(450, 20, 'Contact Details', 0, 1, 'C', true); $pdf->setTextColor(0, 0, 0); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'Correspondence Address', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getCorrespondenceAddressLine1(), 0, 1, 'C', true); $pdf->cell(200, 20, '', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getCorrespondenceAddressLine2(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'City', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getCorrespondenceCity(), 0, 1, 'C', true); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'State', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getCorrespondenceState(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'Pincode', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getCorrespondencePincode(), 0, 1, 'C', true); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'Phone', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getPhone(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'Mobile', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getMobile(), 0, 1, 'C', true); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'Email', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getEmail(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(450, 20, '', 0, 1, 'C', true); $pdf->setFillColor(50, 50, 50); $pdf->setTextColor(255, 255, 255); $pdf->cell(450, 20, 'Login Details', 0, 1, 'C', true); $pdf->setTextColor(0, 0, 0); $pdf->setFillColor(221, 221, 221); $pdf->cell(200, 20, 'Employee Id *', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getTeacherId(), 0, 1, 'C', true); $pdf->setFillColor(255, 255, 255); $pdf->cell(200, 20, 'Temporary Password **', 0, 0, 'C', true); $pdf->cell(250, 20, $record->getTempPass(), 0, 1, 'C', true); /* TEMPLATE 1 DESIGN END*/ $pdf->SetFont('Arial', '', 10); $pdf->SetXY($x + 100, 620); $pdf->write(15, 'Employee\'s Signature'); $pdf->SetXY($x + 350, 620); $pdf->write(15, 'Admin\'s Signature'); $pdf->SetFont('Arial', '', 8); $pdf->SetXY($x + 20, 710); $pdf->write(15, '* Employee Id may be Temporary , ** Please Change the Password for Security Reasons'); $pdf->SetXY($x + 20, 720); $pdf->write(15, 'This is a Computer Generated Form. If any Discrepancy Contact Admin : eduCloud Reference Number ' . $user->getuserId()); // Close the document and save to the filesystem with the name simple.pdf $pdf->Output('generated_files/enroll' . $record->getUserId() . '.pdf', 'F'); header('Location:http://localhost/cloud/generated_files/enroll' . $record->getUserId() . '.pdf'); }