menu
Fórum Adianti
menu Menu
Gerando mais páginas com TPDFDesigner Seguidamente tem perguntas no fórum sobre como gerar mais páginas com um TPDFDesigner. Procurei alterar esse exemplo que vem junto com o tutor: http://www.adianti.com.br/framework_files/tutor/index.php?class=PDFDesignShapesView para gerar mais uma página. Segue o código-fonte integral. Basta usarmos o método generate(), ele já abre uma página nova, renderiza os elementos desenhados. Apó...
PD
Gerando mais páginas com TPDFDesigner  
Fechado
Seguidamente tem perguntas no fórum sobre como gerar mais páginas com um TPDFDesigner. Procurei alterar esse exemplo que vem junto com o tutor: www.adianti.com.br/framework_files/tutor/index.php?class=PDFDesignSh para gerar mais uma página.

Segue o código-fonte integral. Basta usarmos o método generate(), ele já abre uma página nova, renderiza os elementos desenhados. Após isso, basta adicionarmos os elementos dinâmicos novamente (gotoAnchorXY, Write, etc):

  1. <?php
  2. class PDFDesignShapesView extends TPage
  3. {
  4.     private $form// form
  5.     
  6.     /**
  7.      * Class constructor
  8.      */
  9.     function __construct()
  10.     {
  11.         parent::__construct();
  12.         
  13.         // creates the form
  14.         $this->form = new TForm('form_pdf_shapes');
  15.         
  16.         // creates a table
  17.         $table = new TTable;
  18.         
  19.         // add the table inside the form
  20.         $this->form->add($table);
  21.         // create the form fields
  22.         $name = new TEntry('name');
  23.         $name->addValidation'Name', new TRequiredValidator );
  24.         $label = new TLabel('Name' ': ');
  25.         $label->setFontColor('red');
  26.         $table->addRowSet($label$name);
  27.         
  28.         $save_button=new TButton('generate');
  29.         $save_button->setAction(new TAction(array($this'onGenerate')), 'Generate');
  30.         $save_button->setImage('ico_save.png');
  31.         // add a row for the form action
  32.         $table->addRowSet($save_button);
  33.         // define wich are the form fields
  34.         $this->form->setFields(array($name,$save_button));
  35.         
  36.         // wrap the page content using vertical box
  37.         $vbox = new TVBox;
  38.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  39.         $vbox->add($this->form);
  40.         parent::add($vbox);
  41.     }
  42.     /**
  43.      * method onGenerate()
  44.      * Executed whenever the user clicks at the generate button
  45.      */
  46.     function onGenerate()
  47.     {
  48.         try
  49.         {
  50.             $data $this->form->getData();
  51.             $this->form->validate();
  52.             
  53.             $designer = new TPDFDesigner;
  54.             $designer->fromXml('app/reports/forms.pdf.xml');
  55.             $designer->replace('{name}'$data->name );
  56.             $designer->generate();
  57.             
  58.             $designer->gotoAnchorXY('anchor1');
  59.             $designer->SetFontColorRGB('#FF0000');
  60.             $designer->SetFont('Arial''B'18);
  61.             $designer->Write(20'Dynamic text !');
  62.             
  63.             $designer->replace('{name}'$data->name.'2' );
  64.             $designer->generate();
  65.             
  66.             $designer->gotoAnchorXY('anchor1');
  67.             $designer->SetFontColorRGB('#FF0000');
  68.             $designer->SetFont('Arial''B'18);
  69.             $designer->Write(20'Dynamic text 2 !');
  70.             
  71.             $file 'app/output/pdf_shapes.pdf';
  72.             
  73.             if (!file_exists($file) OR is_writable($file))
  74.             {
  75.                 $designer->save($file);
  76.                 parent::openFile($file);
  77.             }
  78.             else
  79.             {
  80.                 throw new Exception(_t('Permission denied') . ': ' $file);
  81.             }
  82.             
  83.             new TMessage('info''Report generated. Please, enable popups in the browser (just in the web).');
  84.         }
  85.         catch (Exception $e// in case of exception
  86.         {
  87.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  88.         }
  89.     }
  90. }
  91. ?>

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)


FV

Muito bom!, porém ao gerar o relatório o navegador pede para desbloquear o pop-up, então para evitar esse tipo de situação eu resolvi gerar relatório em uma classe TWindow, realizando selects pelos os parâmetros.

Lembrando se caso for utilizar esse modo que usei, deve ser criada uma div com a tag <iframe>.

Ex:

  1. <?php
  2.    $div = new TElement('div');
  3.    $div->id 'div_modal_relatorio';
  4.    $div->style 'width: 100%; height: 100%;';
  5.    $div->add("<iframe style='border: 0px;'' src='download.php?file={$pdf}' width='100%' height='100%'></iframe>");
  6. ?>
</iframe>