| Source for file idd_pdf.phpDocumentation is available at idd_pdf.php 
 * @author linea21 <info@linea21.com> * @license http://opensource.org/licenses/gpl-3.0.html    // //////////////////////////////////    // formattage titres item & info    // //////////////////////////////////    $this->MultiCell(0,DOC_HEIGHT+1,$libelle,0,'L',1);    // //////////////////////////////////    // gestion header & footer    // //////////////////////////////////        $content = $report_settings['author'];        if(!empty($report_settings['mail_author']))  {            $content .= ' (' .$report_settings['mail_author'] .')';            $mailto='mailto:' .$report_settings['mail_author'];        $content_comp= !empty($report_settings['service_author']) ? ' -- ' .$report_settings['service_author'] : '';        $content_comp.= !empty($report_settings['adress_author']) ? ' -- ' .$report_settings['adress_author'] : '';        $this->Line($this->GetX(), $this->GetY(), $this->GetX()+190, $this->GetY());        $this->Cell($this->GetStringWidth($content), 4, $content, 0, 0, 'L', 0, $mailto);        $this->Cell(0, 4, $content_comp, 0, 0, 'L');        // Numéro et nombre de pages        $this->Cell(0, 4, $lang['divers']['page'].' ' . $this->PageNo() . '/{nb}', 0, 0, 'R');        $content = formatText($report_settings['title']) .' - ' . SITE_CITY_NAME;        //$this->Cell(0, 4, $lang['statut']['published_on'].' '. $today, 0, 0, 'L');        $this->Cell(0, 4, $today, 0, 0, 'L');        $this->Cell(0, 4, $content, 0, 1, 'R');        $this->Line($this->GetX(), $this->GetY(), $this->GetX()+190, $this->GetY());        //$this->Image('inc_report/logo_p.png', $this->GetX(), $this->GetY());    // //////////////////////////////////    // gestion dynamique des couleurs    // //////////////////////////////////    * @param string $type 'TRACE' | 'FONT' | 'BCKG'    function SetColor($ink = 'DOC_COLOR', $type = 'FONT')                $this->SetTextColor($r, $g, $b);                $this->SetDrawColor($r, $g, $b);                $this->SetFillColor($r, $g, $b);    // //////////////////////////////////    // //////////////////////////////////    function Bookmark($txt, $level = 0, $y = 0)        $this->outlines[] = array('t' => $txt, 'l' => $level, 'y' => $y, 'p' => $this->PageNo());                $parent = $lru[$o['l'] -1];                // Set parent and last pointers                $this->outlines[$i]['parent'] = $parent;                    // Level increasing: set first pointer            if ($o['l'] <= $level and $i > 0) {                // Set prev and next pointers            $this->_out('<</Title ' . $this->_textstring($o['t']));        //$this->_out('<</Title ' . $this->_escapetext($o['t']));            $this->_out('/Parent ' . ($n + $o['parent']) . ' 0 R');                $this->_out('/Prev ' . ($n + $o['prev']) . ' 0 R');                $this->_out('/Next ' . ($n + $o['next']) . ' 0 R');                $this->_out('/First ' . ($n + $o['first']) . ' 0 R');                $this->_out('/Last ' . ($n + $o['last']) . ' 0 R');            $this->_out(sprintf('/Dest [%d 0 R /XYZ 0 %.2f null]', 1 + 2 * $o['p'], ($this->h - $o['y']) * $this->k));            $this->_out('/Count 0>>');        $this->_out('<</Type /Outlines /First ' . $n . ' 0 R');        $this->_out('/Last ' . ($n + $lru[0]) . ' 0 R>>');            $this->_out('/Outlines ' . $this->OutlineRoot  . ' 0 R');            $this->_out('/PageMode /UseOutlines');    // //////////////////////////////////    // //////////////////////////////////    $this->Cell(0, DOC_HEIGHT, $lang['dashboard']['rap_summary'], 0, 2, 'C');    $size=sizeof($this->outlines) -1; // -1 pour supprimer le bookmark de l'index    $PageCellSize=$this->GetStringWidth('p. ' .$this->outlines[$size -1]['p']) +2;    for ($i=0;$i <$size;$i ++){            $strsize=$this->GetStringWidth($str);            $avail_size=$this->w -$this->lMargin -$this->rMargin -$PageCellSize -($level *8) -4;            while ($strsize>=$avail_size){                $strsize=$this->GetStringWidth($str);            $this->Cell($strsize+2,$this->FontSize +2,$str, 0, 0, 'L', 0, $link);            $w=$this->w -$this->lMargin -$this->rMargin -$PageCellSize -($level *8) -($strsize +2);            $nb=$w /$this->GetStringWidth('.');            $this->Cell($w,$this->FontSize+2,$dots,0,0,'R');            $this->Cell($PageCellSize,$this->FontSize+2,'p. ' .$this->outlines[$i]['p'],0,1,'R');    // //////////////////////////////////    // Tableau avec multicells    // //////////////////////////////////        // Tableau des largeurs de colonnes        // Tableau des alignements de colonnes        // Calcule la hauteur de la ligne        for($i = 0;$i < count($data);$i ++)        // Effectue un saut de page si nécessaire        for($i = 0;$i < count($data);$i ++) {            // Sauve la position courante            $this->Rect($x, $y, $w, $h);             $this->MultiCell($w, 5, $data[$i], 0, $a);             $this->SetXY($x + $w, $y);        // Si la hauteur h provoque un d�bordement, saut de page manuel        if ($this->GetY() + $h > $this->PageBreakTrigger)            $this->AddPage($this->CurOrientation);        // Calcule le nombre de lignes qu'occupe un MultiCell de largeur w        $cw = &$this->CurrentFont['cw'];            $w = $this->w - $this->rMargin - $this->x;        $wmax = ($w -2 * $this->cMargin) * 1000 / $this->FontSize;        if ($nb > 0 and $s[$nb -1] == "\n")    // //////////////////////////////////    // import d'image en memoire    // //////////////////////////////////    function MEM_IMAGE($orientation = 'P', $unit = 'mm', $format = 'A4')        $this->FPDF($orientation, $unit, $format);         // Register var stream protocol (requires PHP>=4.3.2)        // Read some bytes from string        $string = substr($var, $pos, $n);        // Read a 4-byte integer from string            $this->Error('Not a PNG image');             $this->Error('Incorrect PNG Image');            $this->Error('16-bit depth not supported: ' . $file);            $colspace = 'DeviceGray';            $this->Error('Alpha channel not supported: ' . $file);            $this->Error('Unknown compression method: ' . $file);            $this->Error('Unknown filter method: ' . $file);            $this->Error('Interlacing not supported: ' . $file);        $parms = '/DecodeParms <</Predictor 15 /Colors ' . ($ct == 2 ? 3 : 1) . ' /BitsPerComponent ' . $bpc . ' /Columns ' . $w . '>>';        // Scan chunks looking for palette, transparency and image data            } elseif ($type == 'tRNS') {                // Read transparency info            } elseif ($type == 'IDAT') {                $data .= $this->_readstr($var, $pos, $n);            } elseif ($type == 'IEND')        if ($colspace == 'Indexed' and empty($pal))            $this->Error('Missing palette in ' . $file);    function MemImage($data, $x, $y, $w = 0, $h = 0, $link = '')        // Put the PNG image stored in $data        if (!isset($this->images[$id])) {            $info['i'] = count($this->images) + 1;            $this->images[$id] = $info;            $info = $this->images[$id];        // Automatic width and height calculation if needed        if ($w == 0 and $h == 0) {            $w = $info['w'] / $this->k;            $h = $info['h'] / $this->k;            $w = $h * $info['w'] / $info['h'];            $h = $w * $info['h'] / $info['w'];        $this->_out(sprintf('q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q', $w * $this->k, $h * $this->k, $x * $this->k, ($this->h - ($y + $h)) * $this->k, $info['i']));            $this->Link($x, $y, $w, $h, $link); |