Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Alterar Imagem PDFDesigner Pessoal fiz uma alteração na classe AdiantiPDFDesigner, no metodo generate(), para alterar imagens. Pode indicar uma imagem como parâmetro direto no ->genetere( 'caminhdo-da-imagem' ) Também pode colocar dentro do arquivo xml, só que alterando manualmente na tag file com uma variável, exemplo: {nome-variavel} , e na classe que vai gerar o relatório, colocar para fazer a troca...
LC
Alterar Imagem PDFDesigner  
Pessoal fiz uma alteração na classe AdiantiPDFDesigner, no metodo generate(), para alterar imagens.
Pode indicar uma imagem como parâmetro direto no ->genetere( 'caminhdo-da-imagem' )
Também pode colocar dentro do arquivo xml, só que alterando manualmente na tag file com uma variável, exemplo: <file>{nome-variavel}</file> , e na classe que vai gerar o relatório, colocar para fazer a troca: $designer->replace( '{nome-variavel}', 'caminhdo-da-imagem' );

  1. <?php
  2.     /**
  3.      * Generate one PDF page with the parsed elements
  4.      * @param $image caminhdo da imagem para substituir - Leandro - Imprime Informática 
  5.      * @author  Pablo Dall'Oglio
  6.      */
  7.     public function generate($image null)
  8.     {
  9.         $this->AddPage$this->orientation$this->format );
  10.         $style '';
  11.         foreach ($this->elements as $element)
  12.         {
  13.             if (isset($element['class']))
  14.             {
  15.                 switch ($element['class'])
  16.                 {
  17.                     case 'Rectangle':
  18.                         if ($element['shadowoffset'] > 0)
  19.                         {
  20.                             $this->setFillColorRGB($element['shadowcolor']);
  21.                             $this->Rect($element['x'] + $element['shadowoffset'], $element['y'] + $element['shadowoffset'], $element['width'], $element['height'], 'F');
  22.                         }
  23.                         parent::SetLineWidth($element['linewidth']);
  24.                         $this->setDrawColorRGB$element['linecolor'] );
  25.                         $this->setFillColorRGB$element['fillcolor'] );
  26.                         $mode $element['linewidth'] > 'FD' 'F';
  27.                         parent::Rect($element['x'], $element['y'], $element['width'], $element['height'], $mode);
  28.                         break;
  29.                         
  30.                     case 'Ellipse':
  31.                         $x $element['x'] + ($element['width']/2);
  32.                         $y $element['y'] + ($element['height']/2);
  33.                         
  34.                         if ($element['shadowoffset'] > 0)
  35.                         {
  36.                             $fillc $this->rgb2int255($element['shadowcolor']);
  37.                             parent::SetFillColor($fillc[0], $fillc[1], $fillc[2]);
  38.                             $this->ellipse($x $element['shadowoffset'], $y $element['shadowoffset'], $element['width']/2$element['height']/2'F');
  39.                         }
  40.                         $mode $element['linewidth'] > 'FD' 'F';
  41.                         parent::SetLineWidth($element['linewidth']);
  42.                         $this->setDrawColorRGB$element['linecolor'] );
  43.                         $this->setFillColorRGB$element['fillcolor'] );
  44.                         $this->ellipse($x$y $element['width']/2$element['height']/2$mode);
  45.                         
  46.                         break;
  47.                         
  48.                     case 'Text':
  49.                         $height_factor['Courier'] = 0.335;
  50.                         $height_factor['Arial'] = 0.39;
  51.                         $height_factor['Times'] = 0.42;
  52.                         $text str_replacearray_keys($this->replaces), array_values($this->replaces), $element['text'] );
  53.                         
  54.                         $x $element['x'] - 2;
  55.                         $y $element['y'] + ($element['size'] * $height_factor$element['font'] ]) - (30 * (1/$element['size']));
  56.                         if ($element['shadowoffset'] > 0)
  57.                         {
  58.                             $this->setFontColorRGB($element['shadowcolor']);
  59.                             parent::SetFont($element['font'], $style$element['size']);
  60.                             $this->writeHTML($x $element['shadowoffset'], $y $element['shadowoffset'], $text);
  61.                         }
  62.                         parent::SetFont($element['font'], $style$element['size'] );
  63.                         $this->setFontColorRGB($element['color']);
  64.                         $this->writeHTML($x$y$text);
  65.                         break;
  66.                         
  67.                     case 'Line':
  68.                         parent::SetLineWidth($element['linewidth']);
  69.                         $this->setDrawColorRGB$element['linecolor'] );
  70.                         parent::Line($element['x'], $element['y'], $element['x2'], $element['y2']);
  71.                         break;
  72.                         
  73.                     case 'Image':
  74.                         /*
  75.                         * - Alterado por Leandro - Imprime Informática
  76.                         * - No Desenho colocar um campo imagem com uma imagem qualquer
  77.                         * - Abrir o arquivo que foi salvo nomedoarquivo.pdf.xml, localizar a tag <file> e coloca uma variavel entre chaves {nomeLogo}
  78.                         * - Fazer o raplece, exemplo: $designer->replace( '{nomeLogo}', 'app/images/nome-da-image.jpg' ); 
  79.                         */
  80.                         // Verifica se no elemento file tem um chave '{' para fazer substituição por varialvel
  81.                         if ( strpos($element['file'], '{') === )
  82.                         {
  83.                             $element['file'] = str_replacearray_keys($this->replaces), array_values($this->replaces), $element['file'] );
  84.                         }
  85.                         
  86.                         //var_dump($image);
  87.                         if ( !empty($image) )
  88.                         {
  89.                             $element['file'] = $image;
  90.                         }
  91.                         
  92.                         //var_dump($element['file']);
  93.                         if (file_exists($element['file']))
  94.                         {
  95.                             parent::Image($element['file'], $element['x'], $element['y'], $element['width'], $element['height']);
  96.                         }
  97.                         break;
  98.                 }
  99.             }
  100.         }
  101.     }
  102. ?>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (1)


LC

Só lembrando que eu fiz a alteração direto na classe AdiantiPDFDesigner, e esta classe faz parte da lib do Adianti, então, o correto seria criar uma classe para estender essa, como esse exemplo:
https://www.adianti.com.br/forum/pt/view_851?criando-cabecalhos-e-rodapes-nos-re