@ -10,6 +10,7 @@ use Chamilo\CoreBundle\Component\Utils\ChamiloApi; 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					class PDF  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    /** @var mPDF */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public $pdf;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public $custom_header = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public $custom_footer = [];  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -31,9 +32,7 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $template = null  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $this->template = $template;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        /* More info @ http://mpdf1.com/manual/index.php?tid=184& searchstring=mPDF  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					         * mPDF ([ string $mode [, mixed $format [, float $default_font_size [, string $default_font [, float $margin_left , float $margin_right , float $margin_top , float $margin_bottom , float $margin_header , float $margin_footer [, string $orientation ]]]]]])  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					         */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        /* More info @ http://mpdf1.com/manual/index.php?tid=184& searchstring=mPDF */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (!in_array($orientation, ['P', 'L'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $orientation = 'P';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -309,7 +308,8 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $document_html = self::fixImagesPaths($document_html, $course_data, $dirName);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                api_set_encoding_html($document_html, 'UTF-8'); // The library mPDF expects UTF-8 encoded input data.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // The library mPDF expects UTF-8 encoded input data.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                api_set_encoding_html($document_html, 'UTF-8');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // TODO: Maybe it is better idea the title to be passed through  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $title = api_get_title_html($document_html, 'UTF-8', 'UTF-8');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // $_GET[] too, as it is done with file name.  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -491,7 +491,6 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //absolute path for frames.css //TODO: necessary?  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $absolute_css_path = api_get_path(WEB_CSS_PATH).api_get_setting('stylesheets').'/frames.css';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $document_html = str_replace('href="./css/frames.css"', 'href="'.$absolute_css_path.'"', $document_html);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $document_html = str_replace('../../', '', $document_html);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $document_html = str_replace('../', '', $document_html);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $document_html = str_replace(  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -515,8 +514,16 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if (strpos($old_src, $protocol) === false) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        if (strpos($old_src, '/main/default_course_document') === false) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            if (strpos($old_src, '/main/inc/lib/') === false) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $old_src_fixed = str_replace(api_get_path(REL_COURSE_PATH).$course_data['path'].'/document/', '', $old_src);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $old_src_fixed = str_replace('courses/'.$course_data['path'].'/document/', '', $old_src_fixed);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $old_src_fixed = str_replace(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    api_get_path(REL_COURSE_PATH).$course_data['path'].'/document/',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    '',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    $old_src  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $old_src_fixed = str_replace(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    'courses/'.$course_data['path'].'/document/',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    '',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    $old_src_fixed  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $new_path = $document_path.$old_src_fixed;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $document_html = str_replace($old_src, $new_path, $document_html);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            }  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -534,22 +541,9 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $document_html = str_replace(api_get_path(WEB_ARCHIVE_PATH), api_get_path(SYS_ARCHIVE_PATH), $document_html);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //replace relative path by absolute path for resources  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //$document_html= str_replace('src="/chamilo/main/default_course_document/', 'temp_template_path', $document_html);// before save src templates not apply  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //$document_html= str_replace('src="/', 'temp_template_path', $document_html);// before save src templates not apply  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //$document_html= str_replace('src="/chamilo/main/default_course_document/', 'temp_template_path', $document_html);// before save src templates not apply  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //$src_http_www= 'src="'.api_get_path(WEB_COURSE_PATH).$course_data['path'].'/document/';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //$document_html= str_replace('src="',$src_http_www, $document_html);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //$document_html= str_replace('temp_template_path', 'src="/main/default_course_document/', $document_html);// restore src templates  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // The library mPDF expects UTF-8 encoded input data.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        api_set_encoding_html($document_html, 'UTF-8');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // TODO: Maybe it is better idea the title to be passed through  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $title = api_get_title_html($document_html, 'UTF-8', 'UTF-8');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // $_GET[] too, as it is done with file name.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // At the moment the title is retrieved from the html document itself.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ($returnHtml) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            return "< style > $ css < / style > ".$document_html;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -658,10 +652,10 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    /**  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * Uploads the pdf watermark in the main/default_course_document directory or in the course directory  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param	string	 $filename filename  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param	string	 $source_file path of the file  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param	string	 $course_code  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @return 	mixed	 web path of the file if sucess, false otherwise  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param    string  $filename filename  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param    string  $source_file path of the file  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param    string  $course_code  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @return    mixed     web path of the file if sucess, false otherwise  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public function upload_watermark($filename, $source_file, $course_code = null)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -727,7 +721,6 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $this->pdf->defaultheaderline = 1; // 1 to include line below header/above footer  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $userId = api_get_user_id();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (!empty($course_data['code'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $teacher_list = CourseManager::get_teacher_list_from_course_code($course_data['code']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -811,7 +804,6 @@ class PDF 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            // Adding watermark  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (api_get_setting('pdf_export_watermark_enable') == 'true') {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $watermark_file = self::get_watermark($course_code);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if ($watermark_file) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    //http://mpdf1.com/manual/index.php?tid=269& searchstring=watermark  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $this->pdf->SetWatermarkImage($watermark_file);