2015-10-12 2 views
1

Я разрабатываю с помощью рамки yii2. Мне нужно отобразить некоторые отчеты, которые должны иметь некоторые изображения. Все в порядке. Но в PDF нет изображений.PHP excell делает PDF без изображения

Что я имею в первенствует:

enter image description here

Что я имею в PDF:

enter image description here

Мой тестовый код выглядит так:

public function run($format = self::EXCEL) { 
    $this->format = $format; 
    if ($this->format == self::PDF) { 
     $rendererName = \PHPExcel_Settings::PDF_RENDERER_MPDF; 
     $rendererLibraryPath = Yii::getAlias('@vendor/mpdf/mpdf/'); 

     if (!\PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { 
      throw new BadRequestHttpException('Export pdf fail'); 
     } 
     $this->headerContentType .= 'pdf'; 
     $this->headerFilename .= date('d_m_Y') . '.pdf'; 
    } elseif ($this->format == self::EXCEL) { 
     $this->headerContentType .= 'vnd.ms-excel'; 
     $this->headerFilename .= date('d_m_Y') . '.xls'; 
    } else { 
     throw new Exception('Unknown format for export'); 
    } 

    $this->objPHPExcel->setActiveSheetIndex(0); 
    $activeSheet = $this->objPHPExcel->getActiveSheet(); 
    $activeSheet->setTitle('Sample' . date('d_m_Y')); 

     $objDrawing = new PHPExcel_Worksheet_Drawing(); 
     $objDrawing->setWorksheet($activeSheet); 
     $activeSheet->getColumnDimension('B')->setWidth(50); 
     $activeSheet->getRowDimension(2)->setRowHeight(80); 
     $activeSheet->setCellValue('A2','img -> '); 
     $activeSheet->setCellValue('B2',' '); 
     $objDrawing->setCoordinates('B'.2); 
     $objDrawing->setOffsetX(10)->setOffsetY(10); 

     $objDrawing->setName('Sample_image'); 
     $objDrawing->setDescription('Sample_image'); 
     $objDrawing->setPath('/home/vladimir/projects/temp/img.jpg'); 
     $objDrawing->setWidth(50)->setHeight(50); 

    header($this->headerContentType); 
    header($this->headerFilename); 
    header('Cache-Control: max-age=0'); 
    $objWriter = \PHPExcel_IOFactory::createWriter($this->objPHPExcel, $this->format); 
    $objWriter->save('php://output'); 
    exit; 
} 
+0

ли изображение визуализировать в HTML? Если это так, то проблема находится в механизме рендеринга PDF –

+0

Пожалуйста, помогите. Может быть, мне нужно написать некоторые подробности? Является ли ясный вопрос? –

+0

Попробуйте расширение mpdf (https://github.com/kartik-v/yii2-mpdf). Это сэкономит вам много времени. –

ответ

0

В этом строка:

$objDrawing->setPath('/home/vladimir/projects/temp/img.jpg'); 

Я должен написать относительный путь к «веб-директории» моего проекта, а также должен иметь этот образ в «веб-каталог».

$objDrawing->setPath('img/img.jpg'); 

/path_to_project/web/img/img.jpg 
0

я застрял в CI3, и если вы используете CI поместить папку изображений вне папки приложения и добавить путь,

$objDrawing = new PHPExcel_Worksheet_Drawing(); 
$objDrawing->setName('Logo'); 
$objDrawing->setDescription('Logo'); 
$objDrawing->setPath('uploads/organizations/1.jpg'); 
$objDrawing->setHeight(36); 
$objDrawing->setWorksheet($this->excel_reader_writer->getSheetByName($download_section)); 

Структура Файл

/- application 
/- system 
/- user_guide 
/- uploads 
Смежные вопросы