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 Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


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