| 1652 | 
           raphael | 
           1 | 
           <?php
  | 
        
        
            | 
            | 
           2 | 
              | 
        
        
           | 1664 | 
           raphael | 
           3 | 
           /**
  | 
        
        
            | 
            | 
           4 | 
           * @category  PHP
  | 
        
        
            | 
            | 
           5 | 
           * @package   jrest
  | 
        
        
            | 
            | 
           6 | 
           * @author    Raphaël Droz <raphael@tela-botania.org>
  | 
        
        
            | 
            | 
           7 | 
           * @copyright 2013 Tela-Botanica
  | 
        
        
            | 
            | 
           8 | 
           * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
  | 
        
        
            | 
            | 
           9 | 
           * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
  | 
        
        
            | 
            | 
           10 | 
           */
  | 
        
        
            | 
            | 
           11 | 
              | 
        
        
           | 1652 | 
           raphael | 
           12 | 
           // Include the main TCPDF library (search for installation path).
  | 
        
        
            | 
            | 
           13 | 
           date_default_timezone_set("Europe/Paris");
  | 
        
        
            | 
            | 
           14 | 
           require_once('tcpdf_config.php');
  | 
        
        
            | 
            | 
           15 | 
           require_once('tcpdf/tcpdf.php');
  | 
        
        
            | 
            | 
           16 | 
              | 
        
        
            | 
            | 
           17 | 
           Class GenerateurPDF {
  | 
        
        
            | 
            | 
           18 | 
              | 
        
        
            | 
            | 
           19 | 
           	public $pdf;
  | 
        
        
            | 
            | 
           20 | 
              | 
        
        
            | 
            | 
           21 | 
           	function GenerateurPDF($utilisateur = NULL) {
  | 
        
        
            | 
            | 
           22 | 
           		// create new PDF document
  | 
        
        
            | 
            | 
           23 | 
           		$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
  | 
        
        
            | 
            | 
           24 | 
              | 
        
        
            | 
            | 
           25 | 
           		// set document information
  | 
        
        
            | 
            | 
           26 | 
           		$pdf->SetCreator(PDF_CREATOR);
  | 
        
        
            | 
            | 
           27 | 
           		$pdf->SetAuthor($utilisateur ? $utilisateur['prenom'] . ' ' . $utilisateur['nom'] : 'CEL - Tela Botanica');
  | 
        
        
            | 
            | 
           28 | 
           		$pdf->SetTitle('Observations en étiquettes');
  | 
        
        
            | 
            | 
           29 | 
           		$pdf->SetSubject('Étiquettes des observations');
  | 
        
        
            | 
            | 
           30 | 
           		$pdf->SetKeywords('botaniques, observations, étiquettes, cel, tela-botanica');
  | 
        
        
            | 
            | 
           31 | 
              | 
        
        
            | 
            | 
           32 | 
           		// set default header data
  | 
        
        
            | 
            | 
           33 | 
           		// $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 005', PDF_HEADER_STRING);
  | 
        
        
            | 
            | 
           34 | 
              | 
        
        
            | 
            | 
           35 | 
           		// set header and footer fonts
  | 
        
        
            | 
            | 
           36 | 
           		// $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
  | 
        
        
            | 
            | 
           37 | 
           		// $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
  | 
        
        
            | 
            | 
           38 | 
              | 
        
        
            | 
            | 
           39 | 
           		// set default monospaced font
  | 
        
        
            | 
            | 
           40 | 
           		$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
  | 
        
        
            | 
            | 
           41 | 
              | 
        
        
            | 
            | 
           42 | 
           		// set margins
  | 
        
        
            | 
            | 
           43 | 
           		$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  | 
        
        
            | 
            | 
           44 | 
           		$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
  | 
        
        
            | 
            | 
           45 | 
           		$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
  | 
        
        
            | 
            | 
           46 | 
              | 
        
        
            | 
            | 
           47 | 
           		// set auto page breaks
  | 
        
        
            | 
            | 
           48 | 
           		// $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
  | 
        
        
            | 
            | 
           49 | 
           		$pdf->SetAutoPageBreak(FALSE, PDF_MARGIN_BOTTOM);
  | 
        
        
            | 
            | 
           50 | 
              | 
        
        
           | 1655 | 
           raphael | 
           51 | 
           		$pdf->SetFont('times', '', 11);
  | 
        
        
           | 1652 | 
           raphael | 
           52 | 
           		$pdf->setCellPaddings(1, 1, 1, 1);
  | 
        
        
            | 
            | 
           53 | 
           		$pdf->setCellMargins(1, 1, 1, 1);
  | 
        
        
            | 
            | 
           54 | 
              | 
        
        
           | 1655 | 
           raphael | 
           55 | 
           		$pdf->AddPage();
  | 
        
        
            | 
            | 
           56 | 
           		$pdf->setEqualColumns(2);
  | 
        
        
            | 
            | 
           57 | 
              | 
        
        
           | 1652 | 
           raphael | 
           58 | 
           		$this->pdf = $pdf;
  | 
        
        
            | 
            | 
           59 | 
           	}
  | 
        
        
            | 
            | 
           60 | 
              | 
        
        
            | 
            | 
           61 | 
              | 
        
        
            | 
            | 
           62 | 
              | 
        
        
            | 
            | 
           63 | 
           	function export($obs) {
  | 
        
        
            | 
            | 
           64 | 
           		$pdf = &$this->pdf;
  | 
        
        
            | 
            | 
           65 | 
              | 
        
        
            | 
            | 
           66 | 
           		$i = 0;
  | 
        
        
            | 
            | 
           67 | 
           		while($i < count($obs)) {
  | 
        
        
            | 
            | 
           68 | 
           			$pdf->selectColumn(0);
  | 
        
        
            | 
            | 
           69 | 
           			// Multicell test
  | 
        
        
           | 1655 | 
           raphael | 
           70 | 
           			$this->doHTMLcell($obs[$i++]); if(!isset($obs[$i])) break;
  | 
        
        
           | 1652 | 
           raphael | 
           71 | 
           			$pdf->Ln();
  | 
        
        
           | 1655 | 
           raphael | 
           72 | 
           			$this->doHTMLcell($obs[$i++]);  if(!isset($obs[$i])) break;
  | 
        
        
           | 1652 | 
           raphael | 
           73 | 
           			$pdf->Ln();
  | 
        
        
           | 1655 | 
           raphael | 
           74 | 
           			$this->doHTMLcell($obs[$i++]); if(!isset($obs[$i])) break;
  | 
        
        
           | 1652 | 
           raphael | 
           75 | 
           			/*$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 1, 1, '', '', true);
  | 
        
        
            | 
            | 
           76 | 
           			  $pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 1, 1, '', '', true);*/
  | 
        
        
            | 
            | 
           77 | 
              | 
        
        
            | 
            | 
           78 | 
           			$pdf->selectColumn(1);
  | 
        
        
           | 1655 | 
           raphael | 
           79 | 
           			$this->doHTMLcell($obs[$i++]); if(!isset($obs[$i])) break;
  | 
        
        
           | 1652 | 
           raphael | 
           80 | 
           			$pdf->Ln();
  | 
        
        
           | 1655 | 
           raphael | 
           81 | 
           			$this->doHTMLcell($obs[$i++]); if(!isset($obs[$i])) break;
  | 
        
        
           | 1652 | 
           raphael | 
           82 | 
           			$pdf->Ln();
  | 
        
        
           | 1655 | 
           raphael | 
           83 | 
           			$this->doHTMLcell($obs[$i++]); if(!isset($obs[$i])) break;
  | 
        
        
           | 1652 | 
           raphael | 
           84 | 
           			/*$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 0, 1, '', '', true);
  | 
        
        
            | 
            | 
           85 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 0, 1, '', '', true);
  | 
        
        
            | 
            | 
           86 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 0, 1, '', '', true);*/
  | 
        
        
            | 
            | 
           87 | 
              | 
        
        
            | 
            | 
           88 | 
           			if(isset($obs[$i])) $pdf->AddPage();
  | 
        
        
            | 
            | 
           89 | 
           		}
  | 
        
        
            | 
            | 
           90 | 
           	}
  | 
        
        
            | 
            | 
           91 | 
              | 
        
        
           | 1655 | 
           raphael | 
           92 | 
           	function getlinenb4($txt) {
  | 
        
        
            | 
            | 
           93 | 
           		// store current object
  | 
        
        
            | 
            | 
           94 | 
           		$this->pdf->startTransaction();
  | 
        
        
            | 
            | 
           95 | 
           		// store starting values
  | 
        
        
            | 
            | 
           96 | 
           		$start_y = $this->pdf->GetY();
  | 
        
        
            | 
            | 
           97 | 
           		$start_page = $this->pdf->getPage();
  | 
        
        
            | 
            | 
           98 | 
              | 
        
        
            | 
            | 
           99 | 
           		$this->pdf->MultiCell($this->column_width, $h=0, $txt, $border=0, $align='L', $fill=false, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0);
  | 
        
        
            | 
            | 
           100 | 
           		$end_y = $this->pdf->GetY();
  | 
        
        
            | 
            | 
           101 | 
           		$end_page = $this->pdf->getPage();
  | 
        
        
            | 
            | 
           102 | 
           		// calculate height
  | 
        
        
            | 
            | 
           103 | 
           		$height = 0;
  | 
        
        
            | 
            | 
           104 | 
           		if ($end_page == $start_page) {
  | 
        
        
            | 
            | 
           105 | 
           			$height = $end_y - $start_y;
  | 
        
        
            | 
            | 
           106 | 
           		} else {
  | 
        
        
            | 
            | 
           107 | 
           			for ($page=$start_page; $page <= $end_page; ++$page) {
  | 
        
        
            | 
            | 
           108 | 
           				$this->setPage($page);
  | 
        
        
            | 
            | 
           109 | 
           				if ($page == $start_page) {
  | 
        
        
            | 
            | 
           110 | 
           					// first page
  | 
        
        
            | 
            | 
           111 | 
           					$height = $this->pdf->h - $start_y - $this->pdf->bMargin;
  | 
        
        
            | 
            | 
           112 | 
           				} elseif ($page == $end_page) {
  | 
        
        
            | 
            | 
           113 | 
           					// last page
  | 
        
        
            | 
            | 
           114 | 
           					$height = $end_y - $this->pdf->tMargin;
  | 
        
        
            | 
            | 
           115 | 
           				} else {
  | 
        
        
            | 
            | 
           116 | 
           					$height = $this->pdf->h - $this->pdf->tMargin - $this->bMargin;
  | 
        
        
            | 
            | 
           117 | 
           				}
  | 
        
        
            | 
            | 
           118 | 
           			}
  | 
        
        
            | 
            | 
           119 | 
           		}
  | 
        
        
            | 
            | 
           120 | 
           		// restore previous object
  | 
        
        
            | 
            | 
           121 | 
           		$this->pdf = $this->pdf->rollbackTransaction();
  | 
        
        
            | 
            | 
           122 | 
           		return $height;
  | 
        
        
            | 
            | 
           123 | 
           	}
  | 
        
        
            | 
            | 
           124 | 
              | 
        
        
            | 
            | 
           125 | 
           	function getlinenb3($txt) {
  | 
        
        
            | 
            | 
           126 | 
           		return $this->pdf->getStringHeight($this->column_width, $txt);
  | 
        
        
            | 
            | 
           127 | 
           	}
  | 
        
        
            | 
            | 
           128 | 
              | 
        
        
            | 
            | 
           129 | 
           	function getlinenb2($txt) {
  | 
        
        
            | 
            | 
           130 | 
           		//var_dump($line, $this->pdf->GetStringWidth($line));
  | 
        
        
            | 
            | 
           131 | 
           		return ceil($this->pdf->GetStringWidth($txt)  / $this->column_width);
  | 
        
        
            | 
            | 
           132 | 
           	}
  | 
        
        
            | 
            | 
           133 | 
              | 
        
        
            | 
            | 
           134 | 
           	function getlinenb($txt) {
  | 
        
        
            | 
            | 
           135 | 
           		return $this->pdf->getStringHeight('', $txt) / ($this->pdf->getFontSize() * $this->pdf->getCellHeightRatio());
  | 
        
        
            | 
            | 
           136 | 
           	}
  | 
        
        
            | 
            | 
           137 | 
              | 
        
        
            | 
            | 
           138 | 
           	// singe la propriété CSS3 "text-overflow" : "ellipsis"
  | 
        
        
            | 
            | 
           139 | 
           	function elude($txt, $limite_lignes = 3) {
  | 
        
        
            | 
            | 
           140 | 
           		// echo strlen($txt) . ' '.  $this->getlinenb($txt) . ' ' . $limite_lignes . "\n";
  | 
        
        
            | 
            | 
           141 | 
              | 
        
        
           | 1661 | 
           aurelien | 
           142 | 
           		$cell_paddings = $this->pdf->getCellPaddings();
  | 
        
        
            | 
            | 
           143 | 
           		$marge = $cell_paddings['T'] + $cell_paddings['B'];
  | 
        
        
           | 1655 | 
           raphael | 
           144 | 
           		$line_height = $this->pdf->getStringHeight($this->column_width, "a") - $marge;
  | 
        
        
            | 
            | 
           145 | 
           		if($limite_lignes > 1) {
  | 
        
        
            | 
            | 
           146 | 
           			$lim = $line_height * $limite_lignes + $marge; // $line_height + ($line_height - $marge) * ($limite_lignes - 1);
  | 
        
        
            | 
            | 
           147 | 
           		} else {
  | 
        
        
            | 
            | 
           148 | 
           			$lim = $line_height + $marge;
  | 
        
        
            | 
            | 
           149 | 
           		}
  | 
        
        
            | 
            | 
           150 | 
              | 
        
        
            | 
            | 
           151 | 
           		while(strlen($txt) > 4 && ($nb = $this->getlinenb3(strip_tags($txt))) > $lim) {
  | 
        
        
            | 
            | 
           152 | 
           			//echo "$nb / $line_height: $txt\n";
  | 
        
        
            | 
            | 
           153 | 
           			// TODO: mb_internal_encoding()
  | 
        
        
            | 
            | 
           154 | 
           			$txt = mb_substr($txt, 0, -4, 'UTF-8') . '…';
  | 
        
        
            | 
            | 
           155 | 
           		}
  | 
        
        
            | 
            | 
           156 | 
           		//echo "$txt: $nb / $limite_lignes \n";
  | 
        
        
            | 
            | 
           157 | 
           		return $txt;
  | 
        
        
            | 
            | 
           158 | 
           	}
  | 
        
        
            | 
            | 
           159 | 
              | 
        
        
            | 
            | 
           160 | 
              | 
        
        
            | 
            | 
           161 | 
           	// TODO: affichage pays dans "localité"
  | 
        
        
           | 1652 | 
           raphael | 
           162 | 
           	// ORDER BY id_observation
  | 
        
        
            | 
            | 
           163 | 
           	// italique pour nom d'espèce, mais pas auteur
  | 
        
        
           | 1661 | 
           aurelien | 
           164 | 
           	function doHTMLcell(&$obs) {
  | 
        
        
           | 1655 | 
           raphael | 
           165 | 
           		$this->pdf->setCellMargins(0,0,0,0);
  | 
        
        
            | 
            | 
           166 | 
           		$width = $this->column_width = 98;
  | 
        
        
            | 
            | 
           167 | 
              | 
        
        
            | 
            | 
           168 | 
           		//echo "cell_padding['T']: " . $this->pdf->getCellPaddings()['T'] . ", cell_padding['B']: " . $this->pdf->getCellPaddings()['B'] . "\n";
  | 
        
        
            | 
            | 
           169 | 
              | 
        
        
            | 
            | 
           170 | 
           		$lh = $this->pdf->getFontSize() * $this->pdf->getCellHeightRatio();
  | 
        
        
            | 
            | 
           171 | 
           		//$lh = $this->pdf->GetLineWidth();
  | 
        
        
            | 
            | 
           172 | 
              | 
        
        
            | 
            | 
           173 | 
           		/*
  | 
        
        
            | 
            | 
           174 | 
           		var_dump($this->pdf->GetLineWidth(),
  | 
        
        
            | 
            | 
           175 | 
           				 $this->pdf->GetCharWidth("a"),
  | 
        
        
            | 
            | 
           176 | 
           				 $this->pdf->getStringHeight(60, "Ê"),
  | 
        
        
            | 
            | 
           177 | 
           				 $this->pdf->getHTMLFontUnits("plop"),
  | 
        
        
            | 
            | 
           178 | 
           				 $this->pdf->GetStringWidth("aa"),
  | 
        
        
            | 
            | 
           179 | 
           				 $lh,
  | 
        
        
            | 
            | 
           180 | 
              | 
        
        
            | 
            | 
           181 | 
           				 5,
  | 
        
        
            | 
            | 
           182 | 
           				 $this->getlinenb4("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum..."),
  | 
        
        
            | 
            | 
           183 | 
           				 $this->elude("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum...", 5),
  | 
        
        
            | 
            | 
           184 | 
              | 
        
        
            | 
            | 
           185 | 
           				 4,
  | 
        
        
            | 
            | 
           186 | 
           				 $this->getlinenb4("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"),
  | 
        
        
            | 
            | 
           187 | 
           				 $this->elude("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum...", 4),
  | 
        
        
            | 
            | 
           188 | 
              | 
        
        
            | 
            | 
           189 | 
           				 3,
  | 
        
        
            | 
            | 
           190 | 
           				 $this->getlinenb4("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet"),
  | 
        
        
            | 
            | 
           191 | 
           				 $this->elude("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum...", 3),
  | 
        
        
            | 
            | 
           192 | 
              | 
        
        
            | 
            | 
           193 | 
           				 2,
  | 
        
        
            | 
            | 
           194 | 
           				 $this->getlinenb4("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore"),
  | 
        
        
            | 
            | 
           195 | 
           				 $this->elude("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum...", 2),
  | 
        
        
            | 
            | 
           196 | 
              | 
        
        
            | 
            | 
           197 | 
           				 1,
  | 
        
        
            | 
            | 
           198 | 
           				 $this->getlinenb4("Observation : Lorem ipsum dolor sit amet, consectetur"),
  | 
        
        
            | 
            | 
           199 | 
           				 $this->elude("Observation : Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum...", 1)
  | 
        
        
            | 
            | 
           200 | 
           		);
  | 
        
        
            | 
            | 
           201 | 
           		die;
  | 
        
        
            | 
            | 
           202 | 
           		*/
  | 
        
        
            | 
            | 
           203 | 
              | 
        
        
            | 
            | 
           204 | 
              | 
        
        
            | 
            | 
           205 | 
           		/*		$str = '<strong>Observation</strong> : ' . $obs['commentaire'];
  | 
        
        
            | 
            | 
           206 | 
           		echo $this->getlinenb(strip_tags($str)) . "\n";
  | 
        
        
            | 
            | 
           207 | 
           		echo $this->getlinenb2(strip_tags($str)) . "\n";
  | 
        
        
            | 
            | 
           208 | 
           		echo $this->pdf->getStringHeight($width, strip_tags($str)) . "\n";
  | 
        
        
            | 
            | 
           209 | 
           		echo $this->pdf->getStringHeight($width, "a") . "\n";
  | 
        
        
            | 
            | 
           210 | 
           		echo ( $this->pdf->getStringHeight($width, strip_tags($str)) / $this->pdf->getStringHeight($width, "a")) . "\n";
  | 
        
        
            | 
            | 
           211 | 
              | 
        
        
            | 
            | 
           212 | 
           		die;*/
  | 
        
        
            | 
            | 
           213 | 
              | 
        
        
            | 
            | 
           214 | 
           		// 3ème paramètre = '' equivalent à $this->pdf->getX()
  | 
        
        
            | 
            | 
           215 | 
           		// 4ème paramètre = '' equivalent à $this->pdf->getY()
  | 
        
        
           | 1664 | 
           raphael | 
           216 | 
              | 
        
        
            | 
            | 
           217 | 
           		// référentiel
  | 
        
        
           | 1682 | 
           raphael | 
           218 | 
           		/* $this->pdf->writeHTMLCell($w = $width, '', '', '',
  | 
        
        
           | 1664 | 
           raphael | 
           219 | 
           								  $html = '<strong>Référentiel</strong> : ' . $obs['nom_referentiel'],
  | 
        
        
           | 1682 | 
           raphael | 
           220 | 
           								  $border = 'LTR', $ln = 1, $fill = false, $reset = true, $align = 'L', $autopadding = true); */
  | 
        
        
           | 1664 | 
           raphael | 
           221 | 
              | 
        
        
           | 1655 | 
           raphael | 
           222 | 
           		// famille
  | 
        
        
           | 1664 | 
           raphael | 
           223 | 
           		$this->pdf->writeHTMLCell($w = $width, '', '', '',
  | 
        
        
           | 1682 | 
           raphael | 
           224 | 
           								  $html = '<strong>Famille</strong> : ' . strtoupper($obs['famille']),
  | 
        
        
            | 
            | 
           225 | 
           								  $border = 'LTR', $ln = 1, $fill = false, $reset = true, $align = 'L', $autopadding = true);
  | 
        
        
           | 1655 | 
           raphael | 
           226 | 
              | 
        
        
            | 
            | 
           227 | 
              | 
        
        
           | 1682 | 
           raphael | 
           228 | 
           		/*
  | 
        
        
           | 1664 | 
           raphael | 
           229 | 
           		// taxon
  | 
        
        
           | 1682 | 
           raphael | 
           230 | 
           		// la taille maximum en bdtfx est 115 caractères UTF-8 (num_nom: 101483)
  | 
        
        
            | 
            | 
           231 | 
           		// SELECT num_nom, CONCAT(nom_sci, ' ', auteur) AS a, CHAR_LENGTH(CONCAT(nom_sci, ' ', auteur)) FROM bdtfx_v1_01 ORDER BY CHAR_LENGTH(a) DESC limit 2;
  | 
        
        
           | 1676 | 
           raphael | 
           232 | 
           		$nom = '<em>' . $obs['nom_ret'] . '</em>';
  | 
        
        
           | 1664 | 
           raphael | 
           233 | 
           		if($obs['certitude'] && stripos($obs['certitude'], 'certain') === false) {
  | 
        
        
           | 1682 | 
           raphael | 
           234 | 
           			$nom .= ' (' . $obs['certitude'] . ')';
  | 
        
        
           | 1664 | 
           raphael | 
           235 | 
           		}
  | 
        
        
            | 
            | 
           236 | 
           		$this->pdf->writeHTMLCell($w = $width, $lh * 3.5, '',  '',
  | 
        
        
            | 
            | 
           237 | 
           								  //$html = '<strong>Espèce</strong> : ' . self::elude('Espèce : ', $obs['nom_ret'], 2),
  | 
        
        
           | 1676 | 
           raphael | 
           238 | 
           								  //$html = $this->elude('<strong>Taxon</strong> : ' . $nom, 3),
  | 
        
        
           | 1682 | 
           raphael | 
           239 | 
           								  $html = '<strong>Taxon</strong> : ' . $nom, // on ne strip pas le nom de taxon, car pas plus de 3 lignes
  | 
        
        
           | 1664 | 
           raphael | 
           240 | 
           								  $border = 'LR', $ln = 1, $fill = false, $reset = true, $align = 'L', $autopadding = true);
  | 
        
        
           | 1682 | 
           raphael | 
           241 | 
           		*/
  | 
        
        
           | 1664 | 
           raphael | 
           242 | 
              | 
        
        
           | 1682 | 
           raphael | 
           243 | 
           		// ou bien nom saisi...
  | 
        
        
            | 
            | 
           244 | 
           		// la taille maximum dans cel_obs au 12/07/2013 est 112 caractères UTF-8 (id_observation: 787762)
  | 
        
        
            | 
            | 
           245 | 
           		// SELECT id_observation, TRIM(nom_sel), CHAR_LENGTH(TRIM(nom_sel)) FROM cel_obs ORDER BY CHAR_LENGTH(TRIM(nom_sel)) DESC LIMIT 2;
  | 
        
        
            | 
            | 
           246 | 
           		$nom = '<em>' . $obs['nom_sel'] . '</em>';
  | 
        
        
            | 
            | 
           247 | 
           		if($obs['certitude'] && stripos($obs['certitude'], 'certain') === false) {
  | 
        
        
            | 
            | 
           248 | 
           			$nom .= ' (' . $obs['certitude'] . ')';
  | 
        
        
            | 
            | 
           249 | 
           		}
  | 
        
        
            | 
            | 
           250 | 
           		$this->pdf->writeHTMLCell($w = $width, $lh * 3.5, '',  '',
  | 
        
        
            | 
            | 
           251 | 
           								  //$html = '<strong>Espèce</strong> : ' . self::elude('Espèce : ', $obs['nom_ret'], 2),
  | 
        
        
            | 
            | 
           252 | 
           								  //$html = $this->elude('<strong>Taxon</strong> : ' . $nom, 3),
  | 
        
        
            | 
            | 
           253 | 
           								  $html = '<strong>Taxon</strong> : ' . mb_substr(trim($nom), 0, 115, 'UTF-8'), // on ne strip pas le nom sélectionné, car pas plus de 3 lignes, mais on assure la mise en page
  | 
        
        
            | 
            | 
           254 | 
           								  $border = 'LR', $ln = 1, $fill = false, $reset = true, $align = 'L', $autopadding = true);
  | 
        
        
            | 
            | 
           255 | 
              | 
        
        
           | 1664 | 
           raphael | 
           256 | 
           		// collecteur
  | 
        
        
            | 
            | 
           257 | 
           		// TODO: pseudo
  | 
        
        
            | 
            | 
           258 | 
           		$limite_nom = 26;
  | 
        
        
            | 
            | 
           259 | 
           		$prenom = $obs['prenom_utilisateur'];
  | 
        
        
            | 
            | 
           260 | 
           		if(mb_strlen($prenom . ' ' . $obs['nom_utilisateur'], 'UTF-8') > $limite_nom) {
  | 
        
        
            | 
            | 
           261 | 
           			$prenom = mb_substr($prenom, 0, 26 - mb_strlen($obs['nom_utilisateur'], 'UTF-8') - 1 /* espace */ - 1 /* … */, 'UTF-8') . '…';
  | 
        
        
            | 
            | 
           262 | 
           			//var_dump($prenom);die;
  | 
        
        
            | 
            | 
           263 | 
           		}
  | 
        
        
            | 
            | 
           264 | 
           		$this->pdf->writeHTMLCell($w = $width - 25, '', '', '',
  | 
        
        
            | 
            | 
           265 | 
           								  $html = '<strong>Collecteur</strong> : ' . $prenom . ' ' . $obs['nom_utilisateur'],
  | 
        
        
            | 
            | 
           266 | 
           								  $border = 'L', $ln = 0, $fill = false, $reset = true, $align = 'L', $autopadding = true);
  | 
        
        
            | 
            | 
           267 | 
              | 
        
        
           | 1655 | 
           raphael | 
           268 | 
           		// N°: TODO: writeHTMLCell() semble bugger
  | 
        
        
           | 1664 | 
           raphael | 
           269 | 
           		$this->pdf->Cell($w = 25, '',
  | 
        
        
           | 1655 | 
           raphael | 
           270 | 
           						 $txt = 'N° : ' . $obs['id_observation'], //. sprintf("%04d", $obs['ordre'])
  | 
        
        
           | 1664 | 
           raphael | 
           271 | 
           						 $border = 'R', $ln = 1, $align = 'R', $fill = false, $link = false, $stretch = 1, $ignore_min_height = false, $calign = 'T', $valign = 'M');
  | 
        
        
            | 
            | 
           272 | 
           		/*$this->pdf->writeHTMLCell($w = 30, '', '', '',
  | 
        
        
           | 1655 | 
           raphael | 
           273 | 
           								  $html = '<strong>N°</strong> : ' . $obs['id_observation'], //. sprintf("%04d", $obs['ordre']),
  | 
        
        
           | 1664 | 
           raphael | 
           274 | 
           								  $border = 'R', $ln = 1, $fill = true, $reset = true, $align = 'L', $autopadding = true);*/
  | 
        
        
           | 1655 | 
           raphael | 
           275 | 
              | 
        
        
           | 1664 | 
           raphael | 
           276 | 
           		// localité
  | 
        
        
            | 
            | 
           277 | 
           		// TODO: département
  | 
        
        
            | 
            | 
           278 | 
           		// TEST: Corse (2A, 2B)
  | 
        
        
            | 
            | 
           279 | 
           		$info_dep = "<strong>Localité</strong> : %s";
  | 
        
        
            | 
            | 
           280 | 
           		$donnees_dep = array($obs['zone_geo']);
  | 
        
        
            | 
            | 
           281 | 
           		if($obs['ce_zone_geo']) {
  | 
        
        
            | 
            | 
           282 | 
           			$info_dep .= " (%s)";
  | 
        
        
            | 
            | 
           283 | 
           			if(strpos($obs['ce_zone_geo'], 'INSEE') !== false) $donnees_dep[] = preg_replace('/^[^\d]*(\d\d).*/', '\1', $obs['ce_zone_geo']);
  | 
        
        
            | 
            | 
           284 | 
           			else $donnees_dep[] = $obs['ce_zone_geo'];
  | 
        
        
            | 
            | 
           285 | 
           		}
  | 
        
        
           | 1655 | 
           raphael | 
           286 | 
              | 
        
        
           | 1682 | 
           raphael | 
           287 | 
           		$info_loc = '';
  | 
        
        
            | 
            | 
           288 | 
           		$donnees_loc = array();
  | 
        
        
            | 
            | 
           289 | 
           		if($obs['lieudit']) {
  | 
        
        
            | 
            | 
           290 | 
           			$info_loc = "%s";
  | 
        
        
            | 
            | 
           291 | 
           			$donnees_loc[] = $obs['lieudit'];
  | 
        
        
            | 
            | 
           292 | 
           		}
  | 
        
        
            | 
            | 
           293 | 
           		if($obs['station']) {
  | 
        
        
            | 
            | 
           294 | 
           			$info_loc .= ", %s";
  | 
        
        
            | 
            | 
           295 | 
           			$donnees_loc[] = $obs['station'];
  | 
        
        
            | 
            | 
           296 | 
           		}
  | 
        
        
           | 1664 | 
           raphael | 
           297 | 
           		if($obs['milieu']) {
  | 
        
        
            | 
            | 
           298 | 
           			$info_loc .= " [%s]";
  | 
        
        
            | 
            | 
           299 | 
           			$donnees_loc[] = $obs['milieu'];
  | 
        
        
            | 
            | 
           300 | 
           		}
  | 
        
        
           | 1655 | 
           raphael | 
           301 | 
           		$this->pdf->writeHTMLCell($w = $width, $lh * 3.5, '', '',
  | 
        
        
            | 
            | 
           302 | 
           								  //$html = "<strong>Localité</strong> : " .
  | 
        
        
            | 
            | 
           303 | 
           								  //self::elude('Localité : ', sprintf("%s (%s)\n%s, %s [%s]", $obs['zone_geo'], $obs['ce_zone_geo'], $obs['lieudit'], $obs['station'], $obs['milieu'] ), 3),
  | 
        
        
            | 
            | 
           304 | 
           								  // $html = self::elude(sprintf("<strong>Localité</strong> : %s (%s)\n%s, %s [%s]", $obs['zone_geo'], $obs['ce_zone_geo'], $obs['lieudit'], $obs['station'], $obs['milieu']), 3),
  | 
        
        
           | 1664 | 
           raphael | 
           305 | 
           								  $html = $this->elude(vsprintf($info_dep, $donnees_dep), 2) . "\n" .
  | 
        
        
            | 
            | 
           306 | 
           								  $this->elude(vsprintf($info_loc, $donnees_loc), 2),
  | 
        
        
            | 
            | 
           307 | 
           								  $border = 'LR', $ln = 1, $fill = false, $reset = true, $align = 'L', $autopadding = true);
  | 
        
        
           | 1655 | 
           raphael | 
           308 | 
              | 
        
        
           | 1664 | 
           raphael | 
           309 | 
           		// lon/lat/alt
  | 
        
        
            | 
            | 
           310 | 
           		$info_geo = '';
  | 
        
        
            | 
            | 
           311 | 
           		$donnees = array();
  | 
        
        
           | 1682 | 
           raphael | 
           312 | 
           		if($obs['latitude'] && $obs['longitude'] /* TODO: clean DB ! */ && $obs['latitude'] != 0.00000) {
  | 
        
        
           | 1664 | 
           raphael | 
           313 | 
           			$info_geo .= "%.5f N  /  %.5f E";
  | 
        
        
            | 
            | 
           314 | 
           			array_push($donnees, $obs['latitude'], $obs['longitude']);
  | 
        
        
            | 
            | 
           315 | 
           		}
  | 
        
        
            | 
            | 
           316 | 
           		if($obs['altitude']) {
  | 
        
        
            | 
            | 
           317 | 
           			$info_geo .= ", %dm";
  | 
        
        
            | 
            | 
           318 | 
           			array_push($donnees, $obs['altitude']);
  | 
        
        
            | 
            | 
           319 | 
           		}
  | 
        
        
           | 1655 | 
           raphael | 
           320 | 
           		$this->pdf->writeHTMLCell($w = $width, '', '', '',
  | 
        
        
           | 1664 | 
           raphael | 
           321 | 
           								  $html = vsprintf("<strong>Lat. / Lon. , Alt.</strong> : " . $info_geo, $donnees),
  | 
        
        
            | 
            | 
           322 | 
           								  $border = 'LR', $ln = 1, $fill = false, $reset = true, $align = 'L', $autopadding = true);
  | 
        
        
           | 1655 | 
           raphael | 
           323 | 
              | 
        
        
            | 
            | 
           324 | 
           		// commentaire
  | 
        
        
            | 
            | 
           325 | 
           		$this->pdf->writeHTMLCell($w = $width, $lh * 4.5, '', '',
  | 
        
        
            | 
            | 
           326 | 
           								  //$html = '<strong>Observation</strong> : ' . self::elude('Observation : ', $obs['commentaire']),
  | 
        
        
           | 1676 | 
           raphael | 
           327 | 
           								  $html = self::elude('<strong>Observations</strong> : ' . $obs['commentaire'], 4),
  | 
        
        
           | 1664 | 
           raphael | 
           328 | 
           								  $border = 'LR', $ln = 1, $fill = false, $reset = true, $align = 'L', $autopadding = true);
  | 
        
        
           | 1655 | 
           raphael | 
           329 | 
              | 
        
        
           | 1684 | 
           raphael | 
           330 | 
           		// date, note: en 64 bits, strtotime() renvoi un entier négatif (!= FALSE) pour l'an 0
  | 
        
        
            | 
            | 
           331 | 
           		if(strncmp("0000", $obs['date_observation'], 4) == 0) $temps = false;
  | 
        
        
            | 
            | 
           332 | 
           		else $temps = strtotime($obs['date_observation']);
  | 
        
        
           | 1655 | 
           raphael | 
           333 | 
           		$this->pdf->writeHTMLCell($w = $width, '', '', '',
  | 
        
        
           | 1683 | 
           raphael | 
           334 | 
           								  $html = '<strong>Date de récolte</strong> : ' . ($temps ? strftime("%d/%m/%Y", $temps) : '               '),
  | 
        
        
           | 1655 | 
           raphael | 
           335 | 
           								  $border = 'LBR', $ln = 1, $fill = false, $reset = true, $align = 'R', $autopadding = true);
  | 
        
        
            | 
            | 
           336 | 
              | 
        
        
            | 
            | 
           337 | 
           	}
  | 
        
        
            | 
            | 
           338 | 
              | 
        
        
           | 1652 | 
           raphael | 
           339 | 
           	function docell($obs) {
  | 
        
        
            | 
            | 
           340 | 
           		$this->pdf->setCellMargins(0,0,0,0);
  | 
        
        
            | 
            | 
           341 | 
              | 
        
        
            | 
            | 
           342 | 
           		$this->pdf->Cell($w = 60, '',
  | 
        
        
            | 
            | 
           343 | 
           						 $txt = 'Famille : ' . $obs['famille'],
  | 
        
        
           | 1655 | 
           raphael | 
           344 | 
           						 $border = 'LT', $ln = 0, $align = 'L', $fill = false, $link = false, $stretch = 1, $ignore_min_height = false, $calign = 'T', $valign = 'M');
  | 
        
        
           | 1652 | 
           raphael | 
           345 | 
              | 
        
        
            | 
            | 
           346 | 
           		$this->pdf->Cell($w = 20, '',
  | 
        
        
            | 
            | 
           347 | 
           						 $txt = 'N° : ' . $obs['id_observation'] /*. sprintf("%04d", $obs['ordre']) */,
  | 
        
        
           | 1655 | 
           raphael | 
           348 | 
           						 $border = 'TR', $ln = 1, $align = 'L', $fill = false, $link = false, $stretch = 1, $ignore_min_height = false, $calign = 'T', $valign = 'M');
  | 
        
        
           | 1652 | 
           raphael | 
           349 | 
              | 
        
        
            | 
            | 
           350 | 
           		$this->pdf->Cell($w = 80, '',
  | 
        
        
            | 
            | 
           351 | 
           						 $txt = 'Espèce : ' . $obs['nom_ret'],
  | 
        
        
           | 1655 | 
           raphael | 
           352 | 
           						 $border = 'RL', $ln = 1, $align = 'L', $fill = false, $link = false, $stretch = 1, $ignore_min_height = false, $calign = 'T', $valign = 'M');
  | 
        
        
           | 1652 | 
           raphael | 
           353 | 
              | 
        
        
            | 
            | 
           354 | 
           		$this->pdf->Cell($w = 80, '',
  | 
        
        
            | 
            | 
           355 | 
           						 $txt = 'Collecteur : ' . $obs['prenom_utilisateur'] . ' ' . $obs['nom_utilisateur'],
  | 
        
        
           | 1655 | 
           raphael | 
           356 | 
           						 $border = 'RL', $ln = 1, $align = 'L', $fill = false, $link = false, $stretch = 1, $ignore_min_height = false, $calign = 'T', $valign = 'M');
  | 
        
        
           | 1652 | 
           raphael | 
           357 | 
              | 
        
        
            | 
            | 
           358 | 
           		$this->pdf->MultiCell(80, 20,
  | 
        
        
           | 1655 | 
           raphael | 
           359 | 
           							  $txt = sprintf("Localité : %s (%s)\n%s, %s", $obs['zone_geo'], $obs['ce_zone_geo'], $obs['lieudit'], $obs['station']),
  | 
        
        
            | 
            | 
           360 | 
           							  $border = 'RL', 'L', 0, 1, '', '', true);
  | 
        
        
           | 1652 | 
           raphael | 
           361 | 
              | 
        
        
            | 
            | 
           362 | 
           		$this->pdf->Cell($w = 80, '',
  | 
        
        
            | 
            | 
           363 | 
           						 $txt = sprintf("Latitude, Longitude : %s  /  %s", $obs['latitude'], $obs['longitude']),
  | 
        
        
           | 1655 | 
           raphael | 
           364 | 
           						 $border = 'RL', $ln = 1, $align = 'L', $fill = false, $link = false, $stretch = 1, $ignore_min_height = false, $calign = 'T', $valign = 'M');
  | 
        
        
           | 1652 | 
           raphael | 
           365 | 
              | 
        
        
            | 
            | 
           366 | 
           		$this->pdf->MultiCell(80, 20,
  | 
        
        
           | 1655 | 
           raphael | 
           367 | 
           							  $txt = 'Observation : ' . self::elude('Observation : ', $obs['commentaire']),
  | 
        
        
            | 
            | 
           368 | 
           							  $border = 'RL', 'L', 0, 1, '', '', true);
  | 
        
        
           | 1652 | 
           raphael | 
           369 | 
              | 
        
        
            | 
            | 
           370 | 
           		$this->pdf->Cell($w = 80, '',
  | 
        
        
            | 
            | 
           371 | 
           						 $txt = 'Date : ' . strftime("%d/%m/%Y", strtotime($obs['date_observation'])),
  | 
        
        
           | 1655 | 
           raphael | 
           372 | 
           						 $border = 'LBR', $ln = 1, $align = 'R', $fill = false, $link = false, $stretch = 1, $ignore_min_height = false, $calign = 'T', $valign = 'M');
  | 
        
        
           | 1652 | 
           raphael | 
           373 | 
           	}
  | 
        
        
            | 
            | 
           374 | 
              | 
        
        
            | 
            | 
           375 | 
              | 
        
        
           | 1655 | 
           raphael | 
           376 | 
           	// singe la propriété CSS3 "text-overflow" : "ellipsis"
  | 
        
        
            | 
            | 
           377 | 
           	function elude_bis($intitule, $commentaire, $lignes = 3) {
  | 
        
        
           | 1652 | 
           raphael | 
           378 | 
           		// TODO: GetLineWidth, GetCharWidth()
  | 
        
        
           | 1655 | 
           raphael | 
           379 | 
           		$limite = $lignes /* lignes */ * 43 /* caractères */ - strlen($intitule);
  | 
        
        
           | 1664 | 
           raphael | 
           380 | 
           		if(mb_strlen($commentaire, 'UTF-8') < $limite) return $commentaire;
  | 
        
        
           | 1655 | 
           raphael | 
           381 | 
           		return mb_substr($commentaire, 0, $limite - 2) . '…';
  | 
        
        
           | 1652 | 
           raphael | 
           382 | 
           	}
  | 
        
        
            | 
            | 
           383 | 
              | 
        
        
            | 
            | 
           384 | 
              | 
        
        
            | 
            | 
           385 | 
           	function export1($observations) {
  | 
        
        
            | 
            | 
           386 | 
           		$pdf = &$this->pdf;
  | 
        
        
            | 
            | 
           387 | 
           		// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0)
  | 
        
        
            | 
            | 
           388 | 
              | 
        
        
            | 
            | 
           389 | 
           		$pdf->setEqualColumns(2);
  | 
        
        
            | 
            | 
           390 | 
              | 
        
        
            | 
            | 
           391 | 
           		$i = 0;
  | 
        
        
            | 
            | 
           392 | 
           		while($i < count($observations)) {
  | 
        
        
            | 
            | 
           393 | 
           			$obs = $observations[$i];
  | 
        
        
            | 
            | 
           394 | 
              | 
        
        
            | 
            | 
           395 | 
           			$pdf->selectColumn(0);
  | 
        
        
            | 
            | 
           396 | 
           			// Multicell test
  | 
        
        
            | 
            | 
           397 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 1, 1, '', '', true);
  | 
        
        
            | 
            | 
           398 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 1, 1, '', '', true);
  | 
        
        
            | 
            | 
           399 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 1, 1, '', '', true);
  | 
        
        
            | 
            | 
           400 | 
           			$pdf->Ln();
  | 
        
        
            | 
            | 
           401 | 
              | 
        
        
            | 
            | 
           402 | 
           			$pdf->selectColumn(1);
  | 
        
        
            | 
            | 
           403 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 0, 1, '', '', true);
  | 
        
        
            | 
            | 
           404 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 0, 1, '', '', true);
  | 
        
        
            | 
            | 
           405 | 
           			$pdf->MultiCell(0, 25, self::doTemplate($obs), 1, 'L', 0, 1, '', '', true);
  | 
        
        
            | 
            | 
           406 | 
              | 
        
        
            | 
            | 
           407 | 
           			$i += 6;
  | 
        
        
            | 
            | 
           408 | 
           			if(isset($observations[$i])) $pdf->AddPage();
  | 
        
        
            | 
            | 
           409 | 
           		}
  | 
        
        
            | 
            | 
           410 | 
           	}
  | 
        
        
            | 
            | 
           411 | 
              | 
        
        
            | 
            | 
           412 | 
           	static function doTemplate($obs) {
  | 
        
        
            | 
            | 
           413 | 
           		$pattern =
  | 
        
        
            | 
            | 
           414 | 
           <<<EOF
  | 
        
        
            | 
            | 
           415 | 
           Famille: %s (%d)
  | 
        
        
            | 
            | 
           416 | 
           Espèce: %s
  | 
        
        
            | 
            | 
           417 | 
           Collecteur: %s
  | 
        
        
            | 
            | 
           418 | 
           Localité: %s
  | 
        
        
            | 
            | 
           419 | 
           Observation: %s	 Date: %s
  | 
        
        
            | 
            | 
           420 | 
           EOF;
  | 
        
        
            | 
            | 
           421 | 
           		return sprintf($pattern,
  | 
        
        
            | 
            | 
           422 | 
              | 
        
        
            | 
            | 
           423 | 
           					   $obs['famille'],
  | 
        
        
            | 
            | 
           424 | 
           					   $obs['ordre'],
  | 
        
        
            | 
            | 
           425 | 
           					   $obs['nom_ret'],
  | 
        
        
            | 
            | 
           426 | 
           					   $obs['prenom_utilisateur'] . ' ' . $obs['nom_utilisateur'],
  | 
        
        
            | 
            | 
           427 | 
           					   $obs['zone_geo'],
  | 
        
        
            | 
            | 
           428 | 
           					   $obs['commentaire'],
  | 
        
        
            | 
            | 
           429 | 
           					   strftime("%Y-%m-%d", strtotime($obs['date_observation']))
  | 
        
        
            | 
            | 
           430 | 
           		);
  | 
        
        
            | 
            | 
           431 | 
              | 
        
        
            | 
            | 
           432 | 
           	}
  | 
        
        
            | 
            | 
           433 | 
              | 
        
        
            | 
            | 
           434 | 
              | 
        
        
            | 
            | 
           435 | 
              | 
        
        
            | 
            | 
           436 | 
           	function export2($observations) {
  | 
        
        
            | 
            | 
           437 | 
           		$pdf = &$this->pdf;
  | 
        
        
            | 
            | 
           438 | 
              | 
        
        
            | 
            | 
           439 | 
           		$pdf->setEqualColumns(2);
  | 
        
        
            | 
            | 
           440 | 
              | 
        
        
            | 
            | 
           441 | 
           		$i = 0;
  | 
        
        
            | 
            | 
           442 | 
           		$y = $pdf->getY();
  | 
        
        
            | 
            | 
           443 | 
           		$x = $pdf->getX();
  | 
        
        
            | 
            | 
           444 | 
           		while($i < count($observations)) {
  | 
        
        
            | 
            | 
           445 | 
           			$obs = $observations[$i++];
  | 
        
        
            | 
            | 
           446 | 
              | 
        
        
            | 
            | 
           447 | 
           			$pdf->selectColumn(0);
  | 
        
        
            | 
            | 
           448 | 
           			// Multicell test
  | 
        
        
            | 
            | 
           449 | 
           			$pdf->writeHTMLCell(0, 25, $x, $y + 25 * 0, self::doHTMLTemplate($obs), 1, 0, 0, true);
  | 
        
        
            | 
            | 
           450 | 
           			$pdf->writeHTMLCell(0, 25, $x, $y + 25 * 1, self::doHTMLTemplate($obs), 1, 0, 0, true);
  | 
        
        
            | 
            | 
           451 | 
           			$pdf->writeHTMLCell(0, 25, $x, $y + 25 * 2, self::doHTMLTemplate($obs), 1, 0, 0, true);
  | 
        
        
            | 
            | 
           452 | 
           			//$pdf->Ln();
  | 
        
        
            | 
            | 
           453 | 
              | 
        
        
            | 
            | 
           454 | 
           			$pdf->selectColumn(1);
  | 
        
        
            | 
            | 
           455 | 
           			$pdf->writeHTMLCell(0, 25, $x, $y + 25 * 0, self::doHTMLTemplate($obs), 1, 1, 1, true);
  | 
        
        
            | 
            | 
           456 | 
           			$pdf->writeHTMLCell(0, 25, $x, $y + 25 * 1, self::doHTMLTemplate($obs), 1, 1, 1, true);
  | 
        
        
            | 
            | 
           457 | 
           			$pdf->writeHTMLCell(0, 25, $x, $y + 25 * 2, self::doHTMLTemplate($obs), 1, 1, 1, true);
  | 
        
        
            | 
            | 
           458 | 
              | 
        
        
            | 
            | 
           459 | 
           			$i += 6;
  | 
        
        
            | 
            | 
           460 | 
           			if(isset($observations[$i])) $pdf->AddPage();
  | 
        
        
            | 
            | 
           461 | 
           		}
  | 
        
        
            | 
            | 
           462 | 
           	}
  | 
        
        
            | 
            | 
           463 | 
              | 
        
        
            | 
            | 
           464 | 
           	static function doHTMLTemplate($obs) {
  | 
        
        
            | 
            | 
           465 | 
           		$pattern =
  | 
        
        
            | 
            | 
           466 | 
           <<<EOF
  | 
        
        
            | 
            | 
           467 | 
           <p>Famille: %s <span style="text-align: right">(%d)</span><br/>
  | 
        
        
            | 
            | 
           468 | 
           Espèce: %s<br/>
  | 
        
        
            | 
            | 
           469 | 
           Collecteur: %s<br/>
  | 
        
        
            | 
            | 
           470 | 
           Localité: %s<br/>
  | 
        
        
            | 
            | 
           471 | 
           Observation: %s	 Date: %s</p>
  | 
        
        
            | 
            | 
           472 | 
           EOF;
  | 
        
        
            | 
            | 
           473 | 
           		return sprintf($pattern,
  | 
        
        
            | 
            | 
           474 | 
              | 
        
        
            | 
            | 
           475 | 
           					   $obs['famille'],
  | 
        
        
            | 
            | 
           476 | 
           					   $obs['ordre'],
  | 
        
        
            | 
            | 
           477 | 
           					   $obs['nom_ret'],
  | 
        
        
            | 
            | 
           478 | 
           					   $obs['prenom_utilisateur'] . ' ' . $obs['nom_utilisateur'],
  | 
        
        
            | 
            | 
           479 | 
           					   $obs['zone_geo'],
  | 
        
        
            | 
            | 
           480 | 
           					   $obs['commentaire'],
  | 
        
        
            | 
            | 
           481 | 
           					   strftime("%Y-%m-%d", strtotime($obs['date_observation']))
  | 
        
        
            | 
            | 
           482 | 
           		);
  | 
        
        
            | 
            | 
           483 | 
              | 
        
        
            | 
            | 
           484 | 
           	}
  | 
        
        
            | 
            | 
           485 | 
              | 
        
        
            | 
            | 
           486 | 
           }
  |