. */ /** * @brief watermark a pdf * * @file watermark.php * @author Laurent Giovannoni * @date $date$ * @version $Revision$ * @ingroup indexing_searching */ require_once 'apps/maarch_entreprise/class/class_pdf.php'; if ($table == '') { $table = 'res_view_letterbox'; } if (isset($watermarkForAttachments) && $watermarkForAttachments) { $filePathOnTmp = $file; $filePathOnTmpResult = $file; $watermarkTab = $_SESSION['modules_loaded']['attachments']['watermark']; $s_id = $sId; } else { $filePathOnTmp = $viewResourceArr['file_path']; $filePathOnTmpResult = $viewResourceArr['file_path']; $watermarkTab = $_SESSION['features']['watermark']; } if ($watermarkTab['text'] == '') { $watermark = 'watermark by ' . $_SESSION['user']['UserId']; } elseif ($watermarkTab['text'] <> '') { $watermark = $watermarkTab['text']; preg_match_all('/\[(.*?)\]/i', $watermarkTab['text'], $matches); $date_now = ''; $sqlArr = array(); for ($z=0;$zquery($query, array($s_id)); $returnQuery = $stmt->fetchObject(); $currentText = $returnQuery->thecolumn; } $watermark = str_replace( '[' . $matches[1][$z] . ']', $currentText, $watermark ); } } $positionDefault = array(); $position = array(); $positionDefault['X'] = 50; $positionDefault['Y'] = 450; $positionDefault['angle'] = 30; $positionDefault['opacity'] = 0.5; if ($watermarkTab['position'] == '') { $position = $positionDefault; } else { $arrayPos = explode(',', $watermarkTab['position']); if (count($arrayPos) == 4) { $position['X'] = trim($arrayPos[0]); $position['Y'] = trim($arrayPos[1]); $position['angle'] = trim($arrayPos[2]); $position['opacity'] = trim($arrayPos[3]); } else { $position = $positionDefault; } } $fontDefault = array(); $font = array(); $fontDefault['fontName'] = 'helvetica'; $fontDefault['fontSize'] = '10'; if ($watermarkTab['font'] == '') { $font = $fontDefault; } else { $arrayFont = explode(',', $watermarkTab['font']); if (count($arrayFont) == 2) { $font['fontName'] = trim($arrayFont[0]); $font['fontSize'] = trim($arrayFont[1]); } else { $font = $fontDefault; } } $colorDefault = array(); $color = array(); $colorDefault['color1'] = '192'; $colorDefault['color2'] = '192'; $colorDefault['color3'] = '192'; if ($watermarkTab['text_color'] == '') { $color = $colorDefault; } else { $arrayColor = explode(',', $watermarkTab['text_color']); if (count($arrayColor) == 3) { $color['color1'] = trim($arrayColor[0]); $color['color2'] = trim($arrayColor[1]); $color['color3'] = trim($arrayColor[2]); } else { $color = $colorDefault; } } // Create a PDF object and set up the properties $pdf = new PDF("p", "pt", "A4"); $pdf->SetAuthor("MAARCH"); $pdf->SetTitle("MAARCH document"); $pdf->SetTextColor($color['color1'],$color['color2'],$color['color3']); $pdf->SetFont($font['fontName'], '', $font['fontSize']); //$stringWatermark = substr($watermark, 0, 11); //$stringWatermark = $watermark; $stringWatermark = explode(',', $watermark); // Load the base PDF into template $nbPages = $pdf->setSourceFile($filePathOnTmp); //For each pages add the watermark for ($cpt=1;$cpt<=$nbPages;$cpt++) { $tplidx = $pdf->ImportPage($cpt); $specs = $pdf->getTemplateSize($tplidx); //Add new page & use the base PDF as template $pdf->addPage($specs['h'] > $specs['w'] ? 'P' : 'L'); $pdf->useTemplate($tplidx); //Set opacity $pdf->SetAlpha($position['opacity']); //Add Watermark for ($i=0; $i< 5; $i++) { //$position['Y'] = $position['Y']+10; $pdf->TextWithRotation( $position['X'], $position['Y'], utf8_decode($stringWatermark[$i]), $position['angle'] ); } } $pdf->Output($filePathOnTmpResult, "F");