Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Problema ao gerar PDF Prezados(as), Estou enfrentando um problema ao gerar um arquivo PDF. Ao adicionar uma célula, diferente de uma imagem, não é possível coloca uma margin, ficando fixo em uma parte do arquivo. Exemplo: // $w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='' $pdf->Cell(6,.47,'IDENTIFICACAO DO ESTUDANTE','',1,'R'); // $file, $x=null, $y=null, $w=0, $h=0, $type='', $...
PA
Problema ao gerar PDF  
Prezados(as),
Estou enfrentando um problema ao gerar um arquivo PDF. Ao adicionar uma célula, diferente de uma imagem, não é possível coloca uma margin, ficando fixo em uma parte do arquivo.

Exemplo:
// $w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link=''
$pdf->Cell(6,.47,'IDENTIFICACAO DO ESTUDANTE','',1,'R');
// $file, $x=null, $y=null, $w=0, $h=0, $type='', $link=''
$pdf->Image('appimagesnew_user.png', 6.5, 1.5, 1.7, 1.9,'png');


Segue o código abaixo:

  1. <?php
  2.     //define('fpdf','font/');
  3.     require('rpdf.php');
  4.     include('phpqrcode/qrlib.php');
  5. class GerarEtiqueta extends TPage
  6. {
  7.     private $form// form
  8.     
  9.     /**
  10.      * Class constructor
  11.      */
  12.     function __construct() {
  13.         parent::__construct();
  14.         
  15.         // creates the form and a inner table
  16.         $this->form = new TForm('form_gerar_pdf');
  17.         $table = new TTable;
  18.         $this->form->add($table);
  19.         $matricula = new TEntry('matricula');
  20.         $nome = new TEntry('nome');
  21.         $data_admissao_i = new TDate('data_admissao_i');
  22.         $data_admissao_f = new TDate('data_admissao_f');
  23.         $data_demissao_i = new TDate('data_demissao_i');
  24.         $data_demissao_f = new TDate('data_demissao_f');
  25.         $nome->setSize('100%');
  26.         
  27.         $data_admissao_i->setSize('60%');
  28.         $data_admissao_f->setSize('60%');
  29.         $data_demissao_i->setSize('60%');
  30.         $data_demissao_f->setSize('60%');
  31.         // creates an action button
  32.         $file = new TFile('file');        
  33.         $save_button=new TButton('generate');
  34.         $save_button->setAction(new TAction(array($this'onPDF')), 'Gerar');
  35.         
  36.         $save_button->setImage('ico_save.png');
  37.         $file->setSize('100%');
  38.         //$file->setAllowedExtensions( ['txt','csv'] );
  39.         // add a row for the form action
  40.         $table->addRowSet(new TLabel('Matrícula'), $matricula);
  41.         $table->addRowSet(new TLabel('Nome'), $nome);
  42.         $table->addRowSet(new TLabel('Data Admissão Inicial'), $data_admissao_i, new TLabel('Data Admissão Final'), $data_admissao_f);
  43.         $table->addRowSet(new TLabel('Data Demissão Inicial'), $data_demissao_i, new TLabel('Data Demissão Final'), $data_demissao_f);
  44.         //$table->addRowSet($file);
  45.         $table->addRowSet($save_button);
  46.         // define wich are the form fields
  47.         $this->form->setFields([ $matricula ] );
  48.         $this->form->setFields([ $nome ] );
  49.         $this->form->setFields([ $data_admissao_i ] );
  50.         $this->form->setFields([ $data_admissao_f ] );
  51.         $this->form->setFields([ $data_demissao_i ] );
  52.         $this->form->setFields([ $data_demissao_f ] );
  53.         
  54.         //$this->form->setFields( [ new TLabel('TFile') ], [ $file ] );
  55.         $this->form->setFields(array($save_button));
  56.         
  57.         // wrap the page content using vertical box
  58.         $vbox = new TVBox;
  59.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  60.         $vbox->add($this->form);
  61.         parent::add($vbox);      
  62.     }
  63.     /**
  64.      * method onGenerate()
  65.      * Executed whenever the user clicks at the generate button
  66.      */
  67.     function onPDF($param) {
  68.         try {            
  69.             TTransaction::open('permission');
  70.             $matricula $param['matricula'];
  71.             $nome $param['nome'];
  72.             $data_admissao_i $param['data_admissao_i'];
  73.             $data_admissao_f $param['data_admissao_f'];
  74.             $data_demissao_i $param['data_demissao_i'];
  75.             $data_demissao_f $param['data_demissao_f'];
  76.             if($data_admissao_i == ''){
  77.                 $date_a_i ='1500-01-01 00:00:00';
  78.             } else {
  79.                 $date_a_i = new DateTime($data_admissao_i);
  80.                 $date_a_i $date_a_i->format('Y-m-d H:i:s');
  81.             }
  82.             if($data_admissao_f == ''){
  83.                 $date_a_f date('Y-m-d H:i:s');
  84.             } else {
  85.                 $date_a_f = new DateTime($data_admissao_f);
  86.                 $date_a_f $date_a_f->format('Y-m-d H:i:s');
  87.             }
  88.             if($data_demissao_i == '') {
  89.                 $date_d_i ='1500-01-01 00:00:00';
  90.             } else {
  91.                 $date_d_i = new DateTime($data_demissao_i);
  92.                 $date_d_i $date_d_i->format('Y-m-d H:i:s');
  93.             }      
  94.             if($data_demissao_f == '') {
  95.                 $date_d_f date('Y-m-d H:i:s');
  96.             } else {
  97.                 $date_d_f = new DateTime($data_demissao_f);
  98.                 $date_d_f $date_d_f->format('Y-m-d H:i:s');
  99.             }           
  100.             
  101.             $criteria = new TCriteria;
  102.             $criteria->add(new TFilter('nome''like'"%{$nome}%"));
  103.             $criteria->add(new TFilter('data_admissao','BETWEEN',$date_a_i$date_a_f));            
  104.             $criteria->add(new TFilter('data_demissao','BETWEEN'$date_d_i,$date_d_f));
  105.             $criteria->setProperties(array('order' => 'data_demissao''direction''asc'));
  106.             $objetos Funcionario::getObjects($criteria);
  107.             if($objetos != null){
  108.                 //Gera o PDF
  109.                 $pdf = new RPDF('L','cm',array(8.5,5.4));
  110.                 foreach ($objetos as $tupla) {
  111.                     $pdf->AddPage();
  112.                     $pdf->SetFont('Arial','',10);
  113.                     $this->onGenerate($tupla$pdf);
  114.                     $date date('d-m-YHi');
  115.                     $file 'app/output/envelope'.$date.'.pdf';
  116.                 }
  117.                 if (!file_exists($file) OR is_writable($file)) {
  118.                     $pdf->output($file);
  119.                     parent::openFile($file);
  120.                 }
  121.                 else {
  122.                     throw new Exception(_t('Permission denied') . ': ' $file);
  123.                 }
  124.                     
  125.                 new TMessage('info''Relatório gerado Por favor, habilite os popups no navegador.');            
  126.             }
  127.             else {
  128.                 new TMessage('error''Favor inserir o documento para geração dos dados.'); 
  129.             }
  130.             TTransaction::close();
  131.         }
  132.         catch (Exception $e) { // in case of exception
  133.             
  134.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  135.         }
  136.     }
  137.     function onGenerate($tupla,$pdf)
  138.     {
  139.         $cartao='';
  140.         $registro $tupla->matricula;
  141.         $nome $tupla->nome;
  142.         $dataAdmissao = new DateTime($tupla->data_admissao);
  143.         $dataQuitacao = new DateTime($tupla->data_demissao);
  144.         $dataAdmissao $dataAdmissao->format('d/m/Y');
  145.         $dataQuitacao $dataQuitacao->format('d/m/Y');
  146.         $cartao .= 'NOME:'.$registro."\n"
  147.         $cartao .= 'MATRICULA:'.$nome."\n";
  148.         $cartao .= 'DATAADMISSAO:'.$dataAdmissao."\n"
  149.         $cartao .= 'DATAQUITACAO:'.$dataQuitacao."\n";
  150.         
  151.         QRcode::png($cartao'imgQRCode\\'.$registro.'.png'QR_ECLEVEL_L 1);
  152.         
  153.         // $w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link=''
  154.         $pdf->Cell(6,.47,'IDENTIFICACAO DO ESTUDANTE','',1,'R');
  155.         $pdf->Cell(2,.47,$nome,'',1,'R');
  156.         $pdf->Cell(2,.47,$registro,'',1,'L');
  157.         $pdf->Cell(2,.47,$dataAdmissao,'',1,'L');
  158.         $pdf->Cell(2,.47,$dataQuitacao,'',1,'L');
  159.         
  160.         // $file, $x=null, $y=null, $w=0, $h=0, $type='', $link=''
  161.         $pdf->Image('app\images\new_user.png'6.51.51.71.9,'png');
  162.         $pdf->Image('app\images\escola_amelia.png'001.65.4,'png');
  163.         $pdf->Image('app\images\prefeitura.png'23.91.71,'png');
  164.         $pdf->Image('imgQRCode\\'.$registro.'.png'73.71.31.3,'png');
  165.     }    
  166. }

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 (1)


NR

Na função Image você define "X" e "Y" diretamente na função. Na função "Cell" não funciona dessa forma, você precisa definir o posicionamento com "setXY" antes de chamá-la.