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):

<?phpclass PDFDesignShapesView extends TPage{    private $form; // form        /**     * Class constructor     */    function __construct()    {        parent::__construct();                // creates the form        $this->form = new TForm('form_pdf_shapes');                // creates a table        $table = new TTable;                // add the table inside the form        $this->form->add($table);        // create the form fields        $name = new TEntry('name');        $name->addValidation( 'Name', new TRequiredValidator );        $label = new TLabel('Name' . ': ');        $label->setFontColor('red');        $table->addRowSet($label, $name);                $save_button=new TButton('generate');        $save_button->setAction(new TAction(array($this, 'onGenerate')), 'Generate');        $save_button->setImage('ico_save.png');        // add a row for the form action        $table->addRowSet($save_button);        // define wich are the form fields        $this->form->setFields(array($name,$save_button));                // wrap the page content using vertical box        $vbox = new TVBox;        $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));        $vbox->add($this->form);        parent::add($vbox);    }    /**     * method onGenerate()     * Executed whenever the user clicks at the generate button     */    function onGenerate()    {        try        {            $data = $this->form->getData();            $this->form->validate();                        $designer = new TPDFDesigner;            $designer->fromXml('app/reports/forms.pdf.xml');            $designer->replace('{name}', $data->name );            $designer->generate();                        $designer->gotoAnchorXY('anchor1');            $designer->SetFontColorRGB('#FF0000');            $designer->SetFont('Arial', 'B', 18);            $designer->Write(20, 'Dynamic text !');                        $designer->replace('{name}', $data->name.'2' );            $designer->generate();                        $designer->gotoAnchorXY('anchor1');            $designer->SetFontColorRGB('#FF0000');            $designer->SetFont('Arial', 'B', 18);            $designer->Write(20, 'Dynamic text 2 !');                        $file = 'app/output/pdf_shapes.pdf';                        if (!file_exists($file) OR is_writable($file))            {                $designer->save($file);                parent::openFile($file);            }            else            {                throw new Exception(_t('Permission denied') . ': ' . $file);            }                        new TMessage('info', 'Report generated. Please, enable popups in the browser (just in the web).');        }        catch (Exception $e) // in case of exception        {            new TMessage('error', '<b>Error</b> ' . $e->getMessage());        }    }}?>

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 (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:

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