intro = $param['INTRO'];
$this->notes = isset($param['NOTES'][0]['NOTE']) ? $param['NOTES'][0]['NOTE'] : null;
$this->generate_RTF();
}
public function generate_RTF(){
global $pmb_gestion_devise, $base_path, $msg, $biblio_logo;
//Format des fonts
$fontHead = new PHPRtfLite_Font(12, 'Arial','#0E298A');
$fontHead->setBold();
$fontSmall = new PHPRtfLite_Font(1);
$fontComment = new PHPRtfLite_Font(10,'Arial');
$fontComment->setItalic();
$fontChapter = new PHPRtfLite_Font(10,'Arial');
$fontChapter->setBold();
$fontSubChapter = new PHPRtfLite_Font(10,'Arial');
$fontSubChapter->setUnderline();
//Format des paragraphes
$parPmb = new PHPRtfLite_ParFormat();
$parPmb->setIndentRight(12.5);
$parPmb->setBackgroundColor('#0E298A');
$parPmb->setSpaceAfter(8);
$parHead = new PHPRtfLite_ParFormat();
$parHead->setSpaceBefore(5);
//$parHead->setSpaceAfter(8);
$parChapter = new PHPRtfLite_ParFormat();
$parChapter->setSpaceBefore(2);
$parChapter->setSpaceAfter(1);
$parComment = new PHPRtfLite_ParFormat();
$parComment->setIndentLeft(1);
$parComment->setIndentRight(0.5);
$parContenu = new PHPRtfLite_ParFormat('justify');
$parContenu->setIndentLeft(1);
$parSubChapter = new PHPRtfLite_ParFormat();
$parSubChapter->setIndentLeft(0.5);
$parInfo = new PHPRtfLite_ParFormat();
$parInfo->setIndentLeft(0.5);
$parInfo->setSpaceAfter(1.5);
//Document
$rtf = new PHPRtfLite();
$rtf->setMargins(1, 1, 1 ,1);
$sect = $rtf->addSection();
$table = $sect->addTable();
@$table->addRows(2, 2);
@$table->addColumnsList(array(5, 15));
$table->addImageToCell(1,1,$base_path."/images/".$biblio_logo,new PHPRtfLite_ParFormat('center'),0,0);
$cell = $table->getCell(1,2);
$titre_general = reg_diacrit($this->intro[0]['TITLE'][0]['value']);
$cell->writeText($this->to_utf8(strtoupper($titre_general)), new PHPRtfLite_Font(14,'Arial','#0E298A'), new PHPRtfLite_ParFormat('left'));
$table->setVerticalAlignmentForCellRange('center', 1, 1, 2, 2);
$table->writeToCell(2,1,$this->to_utf8("".$msg['demandes_rapport_abstract']." : "),new PHPRtfLite_Font(12,'Arial','#0E298A'), new PHPRtfLite_ParFormat('center'));
$cell = $table->getCell(2,2);
$cell->writeText($this->to_utf8($this->intro[0]['ABSTRACT'][0]['value']),new PHPRtfLite_Font(12,'Arial','#0E298A'), new PHPRtfLite_ParFormat('left'));
$sect->writeText($msg['demandes_rapport_intro'], $fontHead, $parHead);
$sect->addEmptyParagraph($fontSmall, $parPmb);
$date = "".$msg['demandes_rapport_date']." : ".$this->intro[0]['DATE'][0]['value'];
$deadline = "".$msg['demandes_rapport_deadline']." : ".$this->intro[0]['DEADLINE'][0]['value'];
//$resume = "".$msg['demandes_rapport_abstract']." : ".$this->intro[0]['ABSTRACT'][0]['value'];
$doc = "".$msg['demandes_rapport_documentaliste']." : ".$this->intro[0]['DOCUMENTALISTE'][0]['value'];
$dmde = "".$msg['demandes_rapport_demandeur']." : ".$this->intro[0]['DEMANDEUR'][0]['value'];
$time = "".$msg['demandes_action_time_elapsed']." : ".$this->intro[0]['TIME'][0]['value'].$msg['demandes_action_time_unit'];
$cout = "".$msg['demandes_action_cout'] ." : ".$this->intro[0]['COST'][0]['value'];
$sect->writeText($this->to_utf8($doc), new PHPRtfLite_Font(10,'Arial'), $parInfo);
$sect->writeText($this->to_utf8($dmde), new PHPRtfLite_Font(10,'Arial'), $parInfo);
$sect->writeText($this->to_utf8($date), new PHPRtfLite_Font(10,'Arial'), $parInfo);
$sect->writeText($this->to_utf8($deadline), new PHPRtfLite_Font(10,'Arial'), $parInfo);
$sect->writeText($this->to_utf8($time), new PHPRtfLite_Font(10,'Arial'), $parInfo);
$sect->writeText($this->to_utf8($cout).(html_entity_decode($pmb_gestion_devise,ENT_QUOTES,'utf-8')), new PHPRtfLite_Font(10,'Arial'), $parInfo);
//$sect->writeText($this->to_utf8($resume), new Font(10,'Arial'), $parInfo);
$sect->writeText($this->to_utf8($msg['demandes_rapport']), $fontHead, $parHead);
$sect->addEmptyParagraph($fontSmall, $parPmb);
$nb_notes = 0;
$indice = 1;
if (is_array($this->notes) && !empty($this->notes)) {
$nb_notes = count($this->notes);
}
for($i = 0; $i < $nb_notes; $i++) {
$chapter = "";
$comment = "";
$sujet_old = "";
if (isset($this->notes[$i]['TITRE']) && $this->notes[$i]['TITRE'] == 'yes') {
$chapter = $this->notes[$i]['CONTENT'][0]['value'];
$sect->writeText("
".($indice)." - ".$this->to_utf8($chapter)."
",$fontChapter,$parChapter);
$indice++;
} elseif (isset($this->notes[$i]['COMMENTAIRE']) && $this->notes[$i]['COMMENTAIRE'] == 'yes') {
$comment = $this->notes[$i]['CONTENT'][0]['value'];
$sect->writeText($this->to_utf8($comment),$fontComment,$parComment);
} else {
$sujet = $this->notes[$i]['SUJET'][0]['value'];
$contenu = $this->notes[$i]['CONTENT'][0]['value'];
if ($sujet != $sujet_old) {
$sect->writeText($this->to_utf8($sujet),$fontSubChapter,$parSubChapter);
}
if ($contenu) {
$sect->writeText($this->to_utf8($contenu),new PHPRtfLite_Font(10,'Arial'),$parContenu);
}
$sujet_old = $sujet;
}
}
$rtf->sendRtf("rapport");
}
/*
* Conversion en UTF-8
*/
public function to_utf8($string){
global $charset;
if($charset != 'utf-8'){
return utf8_encode($string);
}
return $string;
}
}
/*
* Classe de génération du rapport PMI
*/
class report_to_rtf_pmi extends report_to_rtf {
public function __construct(){}
public function generate_RTF(){
global $msg, $base_path, $pmb_gestion_devise, $charset;
//Format de la police
$fontTitle = new PHPRtfLite_Font(16,'Palatino Linotype','#0067B1');
$fontSubtitle = new PHPRtfLite_Font(12,'Palatino Linotype','#0067B1');
$fontTabintro = new PHPRtfLite_Font(12,'Arial','#000000');
$fontPart = new PHPRtfLite_Font(11,'Palatino Linotype','#000000','#E6E6E6');
$fontSubPart = new PHPRtfLite_Font(9,'Arial');
$fontSubPart->setBold();
$fontSubPart->setItalic();
$fontComment = new PHPRtfLite_Font(10,'Arial');
$fontComment->setItalic();
$fontContenu = new PHPRtfLite_Font(10,'Arial');
//Format des paragraphes
$parTitle = new PHPRtfLite_ParFormat('center');
$parTitle->setSpaceBefore(1.5);
$parTitle->setSpaceAfter(20);
$parChapter = new PHPRtfLite_ParFormat('left');
$parChapter->setSpaceBefore(1);
$parChapter->setSpaceAfter(1);
$parSeparator = new PHPRtfLite_ParFormat();
$parSeparator->setBackColor('#0067B1');
$parSeparator->setSpaceAfter(0.5);
$parSeparator->setSpaceBefore(1);
$parPart = new PHPRtfLite_ParFormat();
$parPart->setSpaceBefore(2);
$parPart->setSpaceAfter(1);
$parComment = new PHPRtfLite_ParFormat();
$parComment->setIndentLeft(1);
$parComment->setIndentRight(0.5);
$parContenu = new PHPRtfLite_ParFormat('justify');
$parContenu->setIndentLeft(1);
$parSubPart = new PHPRtfLite_ParFormat();
$parSubPart->setIndentLeft(0.5);
$rtf = new PHPRtfLite();
$rtf->setMargins(1, 1, 1 ,1);
$header = $rtf->addHeader('first');
$header->addImage($base_path.'/images/logo_pmi.png', new PHPRtfLite_ParFormat(),19,2.5);
$titre_general = $this->intro[0]['TITLE'][0]['value'];
$header->writeText($this->to_utf8($titre_general),$fontTitle, $parTitle);
$sect = $rtf->addSection();
$sect->writeText('Search Strategy',$fontSubtitle,$parChapter);
$sect->addEmptyParagraph(new PHPRtfLite_Font(0.5),$parSeparator);
$sect->addEmptyParagraph(new PHPRtfLite_Font(0.5),new PHPRtfLite_ParFormat());
$table = $sect->addTable();
@$table->addRows(10, 0.5);
@$table->addColumnsList(array(4, 15));
$table->setBordersOfCells(new PHPRtfLite_Border_Format(0.5, '#000000'), 1, 1, 10, 2);
$table->setVerticalAlignmentForCellRange('center', 1, 1, 10, 2);
$doc = $this->intro[0]['DOCUMENTALISTE'][0]['value'];
$dmde = $this->intro[0]['DEMANDEUR'][0]['value'];
$time = $this->intro[0]['TIME'][0]['value'].$msg['demandes_action_time_unit'];
$cout = $this->intro[0]['COST'][0]['value'];
$date = $this->intro[0]['DATE'][0]['value'];
$deadline = $this->intro[0]['DEADLINE'][0]['value'];
$abstract = $this->intro[0]['ABSTRACT'][0]['value'];
$table->writeToCell(1,1,'Requests',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(1,2);
$cell->writeText($this->to_utf8($titre_general),$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(2,1,'Searcher(s)',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(2,2);
$cell->writeText($this->to_utf8($doc),$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(3,1,'Patron',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(3,2);
$cell->writeText($this->to_utf8($dmde),$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(4,1,'Request date',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(4,2);
$cell->writeText($this->to_utf8($date),$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(5,1,'Deadline',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(5,2);
$cell->writeText($this->to_utf8($deadline),$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(6,1,'Sources',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(6,2);
$cell->writeText('',$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(7,1,'Keywords',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(7,2);
$cell->writeText('',$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(8,1,'Estimated Time for search',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(8,2);
$cell->writeText($this->to_utf8($time),$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(9,1,'Cost',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(9,2);
$cell->writeText($this->to_utf8($cout).(html_entity_decode($pmb_gestion_devise,ENT_QUOTES,'utf-8')),$fontTabintro,new PHPRtfLite_ParFormat());
$table->writeToCell(10,1,'Abstract',$fontTabintro,new PHPRtfLite_ParFormat());
$cell = $table->getCell(10,2);
$cell->writeText($this->to_utf8($abstract),$fontTabintro,new PHPRtfLite_ParFormat());
$sect->writeText('Comments',$fontSubtitle,$parChapter);
$sect->addEmptyParagraph(new PHPRtfLite_Font(0.5),$parSeparator);
$sect->addEmptyParagraph(new PHPRtfLite_Font(0.5),new PHPRtfLite_ParFormat());
$indice = 1;
for($i=0;$inotes);$i++){
$chapter = "";
$comment = "";
if($this->notes[$i]['TITRE'] == 'yes'){
$chapter = $this->notes[$i]['CONTENT'][0]['value'];
$sect->writeText("
".($indice)." - ".$this->to_utf8($chapter)."
",$fontPart,$parPart);
$indice++;
$sujet_old="";
} else if($this->notes[$i]['COMMENTAIRE'] == 'yes') {
$comment = $this->notes[$i]['CONTENT'][0]['value'];
$sect->writeText($this->to_utf8($comment),$fontComment,$parComment);
} else {
$sujet = $this->notes[$i]['SUJET'][0]['value'];
$contenu = $this->notes[$i]['CONTENT'][0]['value'];
if($sujet != $sujet_old)
$sect->writeText($this->to_utf8($sujet),$fontSubPart,$parSubPart);
if($contenu)
$sect->writeText($this->to_utf8($contenu),$fontContenu,$parContenu);
$sujet_old = $sujet;
}
}
$rtf->sendRtf("rapport");
}
}
?>