Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Máscaras em PDF Boa noite pessoal. Alguém sabe como criar máscaras em código para PDF no Adianti Studio? Tenho alguns campos que sem a máscara ficam sem nexo. Tipo esses: ...
CM
Máscaras em PDF  
Boa noite pessoal.
Alguém sabe como criar máscaras em código para PDF no Adianti Studio?

Tenho alguns campos que sem a máscara ficam sem nexo.

Tipo esses:
  1. <?php
  2.      $pdf->replace('{cpf}',utf8_decode($data->cliente_cpf), 00'L');
  3.      $pdf->replace('{identidade}',utf8_decode($data->cliente_identidade), 00'L');
  4.      $pdf->replace('{telefone}',utf8_decode($data->cliente_telefone), 00'L');
  5.      $pdf->replace('{nascimento}',DateTime::createFromFormat('Y-m-d'$data->cliente_nascimento)->format'd/m/Y' ));
  6. ?>

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


NR

Como referência, veja a função "formatMask" da classe TEntry
HL

Cláudio, boa tarde!

Segue um exemplo de uma classe que criei apenas para a formatação de máscaras.

  1. <?php
  2. class HFormatar extends TPage
  3. {
  4.     public static function onCGC($cgc){
  5.         $cgc preg_replace("/\D/"''$cgc);
  6.         if(strlen($cgc) == 11){
  7.             $cgc preg_replace("/(\d{3})(\d{3})(\d{3})(\d{2})/""\$1.\$2.\$3-\$4"$cgc);
  8.             return $cgc;
  9.         }else{
  10.             if(strlen($cgc) == 14){
  11.                 $cgc preg_replace("/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/""\$1.\$2.\$3/\$4-\$5"$cgc);
  12.                 return $cgc;
  13.             }
  14.         }
  15.     }
  16.     public static function onCEP($cep){
  17.         $cep preg_replace("/^(\d{5})(\d{3})$/""\\1-\\2"$cep);
  18.         return $cep;
  19.     }
  20.     public static function onCelular($celular){
  21.         if(strlen($celular) == 11){
  22.             $celular preg_replace("/(\d{2})(\d{1})(\d{4})(\d{4})/""(\$1) \$2 \$3-\$4"$celular);
  23.         }else{
  24.             if(strlen($celular) == 10){
  25.                 $celular preg_replace("/(\d{2})(\d{4})(\d{4})/""(\$1) \$2-\$3"$celular);
  26.             }
  27.         }
  28.         return $celular;
  29.     }
  30.     public static function onDataHora($datahora){
  31.         if(!empty($datahora)){
  32.             
  33.             $data = new DateTime($datahora);
  34.             $datahora $data->format('d/m/Y H:i:s');
  35.             return $datahora;
  36.         }
  37.         
  38.     }
  39.     public static function onCompetencia($data)
  40.     {
  41.         if ($data)
  42.         {
  43.            
  44.             $ano substr($data,0,4);
  45.             $mes  substr($data,5,2);
  46.             $dia  substr($data,8,2);
  47.             return '{$mes}/{$ano}';
  48.         }
  49.     }
  50. }
  51. ?>


Para utilizar no seu código, só passar:
  1. <?php
  2. $cpf 11111111111;
  3. $cpf HFormatar::onCGC($cpf);
  4. echo $cpf;
  5.  ?>
CM

Nataniel a função FormatMsk eu já uso em vários formulários, o problema está em usar ela na geração de um PDF para tais campos.

Helton, muito interessante sua classe. Já vou guardar e usar.

Consigo usar ela no PDF?

Obrigado a todos.
HL

Claudio, de acordo com o que o Nataniel informou, você pode copiar o código de formatação do FormatMask para a classe HFormatar e usar em qualquer parte do seu código, inclusive em PDF.
CM

Helton como eu havia dito. Já uso nos forms, já tentei usar a mesma função no PDF mas sempre ocorre erro.
HL

Disponibiliza parte do teu código para que possamos analisar melhor.
CM

Boa noite Helton, desculpe a demora.

  1. <?php
  2. public function OnPDF($param)
  3.     {
  4.     
  5.      // open a transaction with database 'samples'
  6.       TTransaction::open('ourorio');
  7.     
  8.      // load all customers
  9.      $repository = new TRepository('ComprasSub');
  10.      $criteria = new TCriteria;
  11.      $ComprasSub $repository->load($criteria);
  12.      setlocale(LC_TIME'portuguese');
  13.      date_default_timezone_set('America/Sao_Paulo');
  14.      $data_atual strftime("%A, %d de %B de %Y"strtotime(date("Y-m-d")));
  15.      
  16.      $data $this->form->getData('ComprasSub');
  17.      $this->form->validate();
  18.      $pdf = new TPDFDesigner;
  19.      $pdf->fromXml('app/reports/recibo_compra_cliente.pdf.xml');
  20.    
  21.    // cabeçalho
  22.      $pdf->replace('{id_compra}',$data->id_compra);
  23.      $pdf->replace('{data_compra}',DateTime::createFromFormat('Y-m-d'$data->data_compra)->format'd/m/Y' ));
  24.      $pdf->replace('{cliente_txt}',utf8_decode($data->cliente_txt));
  25.      $pdf->replace('{endereco_tipo}',utf8_decode($data->cliente_endereco_tipo), 00'L');
  26.      $pdf->replace('{endereco_numero}',utf8_decode($data->cliente_endereco_numero), 00'L');
  27.      $pdf->replace('{endereco}',utf8_decode($data->cliente_endereco), 00'L');
  28.      $pdf->replace('{bairro}',utf8_decode($data->cliente_bairro), 00'L');
  29.   
  30.      $pdf->replace('{cpf}',utf8_decode($data->cliente_cpf), 00'L');
  31.      $pdf->replace('{identidade}',utf8_decode($data->cliente_identidade), 00'L');
  32.      $pdf->replace('{telefone}',utf8_decode($data->cliente_telefone), 00'L');
  33.      $pdf->replace('{nascimento}',DateTime::createFromFormat('Y-m-d'$data->cliente_nascimento)->format'd/m/Y' ));
  34.      $pdf->replace('{cidade}',utf8_decode($data->cliente_cidade), 00'L');
  35.      $pdf->replace('{estado}',utf8_decode($data->cliente_estado), 00'L');
  36.      $pdf->replace('{email}',utf8_decode($data->cliente_email), 00'L');
  37.    
  38.      $pdf->replace('{vendedor_txt}',utf8_decode($data->vendedor_txt));
  39.      $pdf->replace('{loja_txt}',utf8_decode($data->loja_txt));
  40.      $pdf->replace('{loja_id}',utf8_decode($data->loja_id));
  41.     
  42.      $pdf->generate();
  43.      $fill TRUE
  44.      // Itens do Pedido
  45.              $tot 0;  // acrescentei aqui
  46.              
  47.              
  48.              foreach ($ComprasSub as $pedido_list)
  49.                  {
  50.                  if($pedido_list->compra_id == $data->id_compra)  // alterei aqui para testar
  51.                  {
  52.                     $pdf->gotoAnchorX('detalhes');
  53.                     $pdf->Ln(20);
  54.                     $pdf->Cell(5012number_format((double)$pedido_list->quantidade2',''.'), 00'R');
  55.                     $pdf->Cell(2512utf8_decode($pedido_list->unidade), 00'R');
  56.                     $pdf->Cell(10012utf8_decode($pedido_list->descricao), 00'L');
  57.                     $pdf->Cell(18012utf8_decode($pedido_list->kilate_txt), 00'R');
  58.                     $pdf->Cell(8012utf8_decode($pedido_list->tipo_compra_txt), 00'L');
  59.                     $pdf->Cell(7512number_format((double)$pedido_list->valor_unit2',''.'), 00'R');
  60.                     $pdf->Cell(7012number_format((double)$pedido_list->subtotal2',''.'), 00'R');
  61.                     
  62.                     $tot $tot $pedido_list->subtotal;  // acrescentei aqui
  63.                     
  64.                     // grid background
  65.                     $fill = !$fill;
  66.                }
  67.             }      
  68.     
  69.      $pdf->Ln(4);
  70.      $pdf->SetX(18); 
  71.      $pdf->Cell(57014utf8_decode(""),'B','R'$fill);
  72.        
  73.      $pdf->Ln(20);
  74.      $pdf->SetX(50);
  75.      $pdf->Cell(53014utf8_decode("Total R$ "number_format((double)$tot2',''.')),0,0,'R');   // acrescentei aqui
  76.      
  77.      $pdf->Ln(50);
  78.      $pdf->SetX(18); 
  79.      $pdf->MultiCell(56014utf8_decode("      Eu, ".$data->cliente_txt", declaro, para todos os fins, de direito e sob as penas da Lei 12.683 de 9 de julho de 2012 e  artigos 155, 156 e 157 todos do Código Penal Brasileiro, em todas as esferas, em juízo ou fora dele, ser o(a) legítimo(a) Proprietário(a) do(s) objeto(s) e/ou ouro velho que, no presente ato vendo a OuroRio Quiosques & Comércio de Metais Ltda, declarando ainda que não transfiro em caráter absoluto nenhuma de minhas responsabilidades a referida empresa quanto a procedência, descrição e autenticidade do(s) objeto(s) e/ou ouro velho o(s) qual(is) foi(ram) por mim legalmente adquirido(s) e está(ão) livre(s) e desembaraçada(s) de quaisquer ônus ou pendência(s).
  80.       Respondo sempre e, em quaisquer circunstâncias, pelos termos desta Declaração a qual assino em via única."),0,'J'$fill);
  81.      
  82.      $pdf->Ln(200);
  83.      $pdf->SetX(20);
  84.      $pdf->Cell(56014,$data_atual);  
  85.      
  86.    
  87.     // inicio do rodapé
  88.      $pdf->SetY(-25);
  89.      $pdf->SetFont('Arial'''8);
  90.      $pdf->setFontColorRGB'#000000' );
  91.      $pdf->Cell(59010utf8_decode('Pág. ').$pdf->PageNo().' de {nb}',0,0,'R');
  92.      $pdf->SetY(-25);
  93.      $pdf->Cell(14010utf8_decode('Sistema Gestor OuroRio © '.date("Y"."")),0,0,'R');
  94.      $pdf->SetY(-25);
  95.      $pdf->Cell(340,10,utf8_decode("Impresso em ".date("d/m/Y H:i:s"."")),0,1,'R');
  96.      $pdf->SetY(-25);
  97.      $pdf->Cell(460,10,utf8_decode(" Por ".TSession::getValue('username')),0,1,'R'); //nome do usuário 
  98.      // fim do rodapé
  99.     
  100.    
  101.      $file="app/output/Recibo - ".$data->loja_txt.".pdf"
  102.     
  103.      if (!file_exists($file) OR is_writable($file))
  104.      {
  105.      $pdf->save($file);
  106.    
  107.      //Abrir PDF em Janela Modal dentro do Sistema
  108.      $window TWindow::create($data->loja_txt0.80.8);
  109.                 $object = new TElement('object');
  110.                 $object->data  $file;
  111.                 $object->type  'application/pdf';
  112.                 $object->style "width: 100%; height:calc(100% - 10px)";
  113.                 $window->add($object);
  114.                 $window->show();
  115.                 
  116.      }
  117.      else
  118.      {
  119.      throw new Exception(_t('Permission denied') . ': ' $file);
  120.      } 
  121.     
  122.      TForm::sendData('form_Compras',$data);
  123.      TToast::show('success','RECIBO GERADO COM SUCESSO!''top left''fas fa-check');
  124.      TTransaction::close();
  125.      AdiantiCoreApplication::loadPage'ComprasListLoja' );
  126.      exit;
  127.     
  128.   
  129.      }
  130. ?>
HL

Claudio, no exemplo que te dei, tu pode fazer dessa forma ai.

  1. <?php
  2. $data->cliente_cpf HFormatar::onCGC($data->cliente_cpf);
  3. $pdf->replace('{cpf}',utf8_decode($data->cliente_cpf), 00'L');
  4. ?>
CM

Beleza Helton.
Vou fazer amanhã e te aviso se deu certo.
Obrigado pela força irmão