Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Inkscape e Adianti (criando uma fatura) Olá, Gostaria de uma alternativa para criação de relatórios, faturas mais elegantes e profissionais. Hoje uso html para pdf usando DOMPDF, porem não gosto dos resultados. Já me indicaram Jasper Ireport , Inkscape etc. Porem não tem nada no google que dê uma introdução bacana sobre como integrar isso com php, adianti etc. Agradeço qualquer ajuda....
MA
Inkscape e Adianti (criando uma fatura)  
Olá,

Gostaria de uma alternativa para criação de relatórios, faturas mais elegantes e profissionais. Hoje uso html para pdf usando DOMPDF, porem não gosto dos resultados.
Já me indicaram Jasper Ireport , Inkscape etc. Porem não tem nada no google que dê uma introdução bacana sobre como integrar isso com php, adianti etc. Agradeço qualquer ajuda.

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (2)


CC

Olá Marcos!

Aconselho você fazer um assinatura no Adianti Builder, tem muitas coisas interessantes lá, se quiser pode baixar ai no seu pc o Inkscape que também pode criar do mesmo jeito!

O Adianti Builder você aprende muito mais rápido e pratico no clica e arraste, com pouquíssima programação ele faz tudo! Faz um assinatura anual, vale muito a pena!

O inkscape no caso de desenhos, faz a mesma coisa do vídeo referente ao jasper que você viu lá, faz seu desenho do relatório do tipo recibo, contrato, procuração e etc...

Abaixo o código para fazer a leitura do desenho criado, por exemplo um recibo!

  1. <?php
  2. class RecibosEmitidosDrawing extends TPage
  3. {
  4.     private static $database 'meuprojeto';
  5.     private static $activeRecord 'RecibosEmitidos';
  6.     private static $primaryKey 'NR_RECIBO';
  7.     
  8.     //desenho criado pelo adianti Builder ou Inkscape 
  9.     #=========================================
  10.     private static $svgFile 'app/drawings/RecibosEmitidosDrawingTemplate.svg';
  11.     #=========================================
  12.     /**
  13.      * Form constructor
  14.      * @param $param Request
  15.      */
  16.     public function __construct$param )
  17.     {
  18.     }
  19.     public static function onGenerate($param)
  20.     {
  21.         try 
  22.         {
  23.             TTransaction::open(self::$database);
  24.             $class self::$activeRecord;
  25.             $object = new $class($param['key']);
  26.             $html = new AdiantiHTMLDocumentParser();
  27.             $html->setMaster($object);
  28.             //--------------------------------------------------------------------------------------
  29.             //--- Código que irá transformar a imagem em base64 para ela ser embutida dentro do SVG.
  30.             //    OBS: você terá que alterar o código para buscar o logo do seu cadastro…
  31.             //--------------------------------------------------------------------------------------
  32.             //--- Busca Empresa filial
  33.             $Empresa = new Empresa($object->COD_CFCFILIAL);
  34.             if ($Empresa)
  35.             {
  36.                 $path $Empresa->LOGOTIPO;
  37.             }
  38.             $type pathinfo($pathPATHINFO_EXTENSION);
  39.             $data file_get_contents($path);
  40.             $base64 'data:image/' $type ';base64,' base64_encode($data);
  41.             $object->image $base64// o base64 da imagem gerado será adicionado dentro do SVG na variavel {$image}
  42.             //--------------------------------------------------------------------------------------
  43.             //Fim-Código que irá transformar a imagem em base64 para ela ser embutida dentro do SVG.
  44.             //    OBS: você terá que alterar o código para buscar o logo do seu cadastro…
  45.             //--------------------------------------------------------------------------------------
  46.             //--------------------------------------------------------------------------------------
  47.             //--- Formatação do campo valor para ponto e virgulas.
  48.             //--------------------------------------------------------------------------------------
  49.             $object->VALOR number_format($object->VALOR2","".");
  50.             //--------------------------------------------------------------------------------------
  51.             //Fim-Formatação do campo valor para ponto e virgulas.
  52.             //--------------------------------------------------------------------------------------
  53.             //--- Converter data para BR.
  54.             $object->DTA call_user_func(function($value$object$row
  55.             {
  56.               if(!empty(trim($value)))
  57.               {
  58.                  try
  59.                  {
  60.                    $date = new DateTime($value);
  61.                    return $date->format('d/m/Y');
  62.                  }
  63.                  catch (Exception $e)
  64.                  {
  65.                      return $value;
  66.                  }
  67.               }
  68.             }, $object->DTA$objectnull);
  69.             if ($object->TIPO_LANCAMENTO == 'C'$object->TIPO_LANCAMENTO "Credito";
  70.             if ($object->TIPO_LANCAMENTO == 'D'$object->TIPO_LANCAMENTO "Debito";
  71.             $html->parseImage(self::$svgFile);
  72.             $html->process();
  73.             $document 'tmp/'.uniqid().'.pdf'
  74.             $html->saveAsPDF($document, [595841]);
  75.             TTransaction::close();
  76.             parent::openFile($document);
  77.             new TMessage('info'_t('Drawing successfully generated'));
  78.         } 
  79.         catch (Exception $e
  80.         {
  81.             // shows the exception error message
  82.             new TMessage('error'$e->getMessage());
  83.             // undo all pending operations
  84.             TTransaction::rollback();
  85.         }
  86.     } 
  87. }
CC

E ai Marcos,

Conseguiu? Faz um teste igual ao vídeo do canal do Fabricio, o Inkscape é bem parecido a forma de criar os layout do relatório, use, id: {$id} / nome: {$nome} e o FW na rotina anterior preenche os campos do desenho referente a tabela!

Espero ter ajudado!