Ir para conteúdo
Fórum Script Brasil
  • 0

Como alterar o estilo (negrito, itálico...) dentro de uma Multicell


paulobergo

Pergunta

Olá pessoal...

Até criar um projeto em PHP para orçamento público, nunca havia usado a função MultiCell em uma planilha com FPDF...

Na prática, utilizei sempre a função MultiCell para escrever texto livre em uma única célula (por exemplo, ocupando metade da página), sem células simples nas laterais esquerda e/ou direita...

Então, anexei duas figuras: a primeia, identifica o que está acontecendo e a segunda o que eu gostaria de obter...

A planilha é baseada em um formulário (planilha) contábil...

Esta é a situação que eu tenho:

multi_como_esta.jpg

E esta é a situação que eu desejo:

multi_desejado.jpg

O código atual é este:

$pdf->SetFont('Arial', 'B', 10);
      $pdf->SetX(10);
      $pdf->Cell(30, 5, $space.$reg['conta'], 1, 0, 'L');
      $pdf->SetX(40);
      $pdf->Cell(14, 5, ' ', 1, 0, 'L');
      $pdf->SetX(54);
      $pdf->MultiCell(130, 5, $produto, 1, 'L', 0);
      $pdf->SetX(184);
      $pdf->Cell(25, 5, $meta_1v, 1, 0, 'R');
      $pdf->SetX(209);
      $pdf->Cell(25, 5, $meta_2v, 1, 0, 'R');
      $pdf->SetX(234);
      $pdf->Cell(25, 5, $meta_3v, 1, 0, 'R');
      $pdf->SetX(259);
      $pdf->Cell(25, 5, $meta_4v, 1, 0, 'R');
      $pdf->Ln(5);

O conteúdo da variável $produto é obtido a partir de um campo tipo "Text" de uma tabela no MySQL.

E o problema é, basicamente, conseguir "esticar" as células à esquerda da "multicell" e fazer com que as células da direita se iniciem na posição "y" superior direita da célula multicell...

Bom... é isso...

Grato por qualquer dica!

Abraços.

Editado por paulobergo
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá pessoal...

Depois de muita pesquisa e muitos posts e muitas sugestões, conseguir resolver o problema e ficou quase 100%... Agora, consigo não só agrupar as células da forma necessária como também consigo evitar que um título de uma conta fique "viúva" de seus subitens, em outras páginas, calculando o espaço que seria necessário para imprimir por completo a sequência de cada conta e sua subconta, como no exemplo...

Porém, surgiu outra necessidade... a de destacar, em negrito, itálico ou sublinhado, algum texto dentro da célula (usando as tags html (B) (/b), (u) (/u), (i) (/i) )...

O código completo, abaixo, faz a impressão do texto corretamente, usando multicell

Já tentei substituir o uso da multicell pelo write, como pode ser visto com a função writehtml() porém, falta conseguir colocar o conteúdo dentro de uma área específica, como ocorre com a multicel...

Então, caso alguém já tenha passado por isso e puder dar uma ajuda, agradeço muitissimo...

planilha.jpg

No texto acima, preciso que o texto "projeto essencial para comunicação de dados" fique em negrito e sublinhado...

O código atual é este:

<?php
require("include/def_links.php");
session_start();
if (! isset($_SESSION['idusuario'])) {
  header("Location: index.php?erro=1");
  exit;
}
include("include/conecta.php");

$escolha = $_POST['escolha'];
$opcao   = $_POST['opcao'];
$sel_supervisao = $_POST['sel_supervisao'];
$sel_detalhe = $_POST['sel_detalhe'];
$sel_depto   = $_POST['sel_depto'];

if (! isset($_POST['margem_sup'])) {
  $margem_sup = 12;
}
else {
  $margem_sup  = $_POST['margem_sup'];
}

if (! isset($_POST['ativas'])) {
  $ativas = 'T';
}
else {
  $ativas = $_POST['ativas'];
}

if ($escolha=='1') {
  $defescolha = 'and essencial=1 ';
  $escolhatit = ' - Essenciais';
}
else if ($escolha=='2') {
  $defescolha = 'and essencial=0 ';
  $escolhatit = ' - Projetos';
}
else {
  $defescolha = ' ';
  $escolhatit = '';
}

If ($sel_supervisao=='todas') {
  $defsup = ' ';
}
else {
  $defsup = '  and (acao.idsupervisao='.$sel_supervisao.') ';
}

If ($sel_depto=='T') {
  $sele_depto = ' ';
}
else {
  $sele_depto = '  and (substring(acao.conta, 1, 1)="'.$sel_depto.'") ';
}
// echo $sele_depto;
// exit;

if ($ativas=='T') {
  $sele_ativas = ' ';
}
else {
  $sele_ativas = '  and (acao.ativa='.$ativas.') ';
}

$boldtitulo = '';
$boldconta  = '';
$boldtotais = 'B';
$boldcelula = '';

$b_ha_sub_1 = 0;
$b_ha_sub_2 = 0;
$b_ha_sub_3 = 0;

$res1_conta  = '';
$res1_codigo = '';
$res1_cdescr = '';
$res1_subcab = '';
$res1_impres = 0;

$res2_conta  = '';
$res2_codigo = '';
$res2_cdescr = '';
$res2_subcab = '';
$res2_impres = 0;

$res3_conta  = '';
$res3_codigo = '';
$res3_cdescr = '';
$res3_subcab = '';
$res3_impres = 0;

include("include/conecta.php");

define("FPDF_FONTPATH", 'fpdf/font/');
require_once('fpdf/fpdf.php');

class PDF extends FPDF {
  // ***************************** Extensão da Classe FPDF. Início.

  function Header() {
    // ***** Logo da PJF.
    global $escolhatit;
    global $boldtitulo;
    global $margem_sup;
    $yposimg = $margem_sup-4;
    $this->Image('imagens/logo_pjf.jpg', 12, $yposimg, 5); // x, y, tamanho
    $titulo  = "PJF/SPDE/SSTI. Resumo de Ações pelo Plano de Contas".$escolhatit;
    $datarel = date('d/m/Y').' '.strftime('%H:%M:%S');
    $this->SetFont('Arial', $boldtitulo, 12);
    // Posicao Vertical, no caso -1, que é o limite da margem.
    $this->SetY($margem_sup);
    // escreve no pdf largura, altura, conteudo, borda, quebra de linha, alinhamento
    $this->SetX(18);
    $this->Cell(226, 0, $titulo, 0, 0, 'L');
    $this->SetX(244);
    $this->SetFont('Arial', $boldtitulo, 11);
    $this->Cell(40, 0, $datarel, 0, 0, 'R');
    $this->Ln(8);

    $this->SetFont('Arial', $boldtitulo, 10);
    $this->SetX(10);
    $this->Cell(25, 5, 'Conta', 1, 0, 'C');
    $this->SetX(35);
    $this->Cell(19, 5, 'Código', 1, 0, 'C');
    $this->SetX(54);
    $this->Cell(195, 5, 'Descrição da Ação', 1, 0, 'C');
    $this->SetX(249);
    $this->Cell(35, 5, '2011', 1, 0, 'C');
    $this->Ln(8); 

  }

  function Footer() {
    $n_pagina = $this->PageNo();
    if (($n_pagina%2)==0) {
      $lado_spde = 'R';
      $lado_pag  = 'L';
    }
    else {
      $lado_spde = 'L';
      $lado_pag  = 'R';
    }
    $this->SetFont('Arial', 'BI', 8);
    $this->SetY(-5);
    $this->Cell(0, 0, 'SPDE/SSTI', 0, 0, $lado_spde);
    $this->SetY(-5);
    $this->Cell(0, 0, 'Página '.$this->PageNo(), 0, 0, $lado_pag);
    $this->SetFont('Arial', '', 8);
    $this->SetY( -1);
  }

   var $widths;
   var $aligns;
   var $ffamilys;
   var $fformats;
   var $fsizes;

   function SetFFontFamily($ff)
   {
     // Define o array para o tipo de fonte das colunas.
     $this->ffamilys=$ff;
   }

   function SetFFontMode($fm)
   {
     // Define o formato da fonte das colunas.
     $this->fformats=$fm;
   }

   function SetFFontFSize($fz)
   {
     // Define o tamanho da fonte das colunas.
     $this->fsizes=$fz;
   }

   function SetWidths($w)
   {
     // Define o array para dimensão das colunas.
     $this->widths=$w;
   }

   function SetAligns($a)
   {
     // Define o array para alinhamento das colunas.
     $this->aligns=$a;
   }

  // ********************** Novas Funções Início.
  // * A função WriteHTML consegue modificar a fonte usando as tags <u></u>, <b></b>, <i></i> e <href>...
  //
  function WriteHTML($html, $qw, $qa)
  {
      //HTML parser
      $html=str_replace("\n",' ',$html);
      $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
      foreach($a as $i=>$e)
      {
          if($i%2==0)
          {
              //Text
              if($this->HREF)
                  $this->PutLink($this->HREF,$e);
              else
                  $this->MultiCell($qw, 5, $e, 0, $qa);
                  // $this->Write(5,$e);
          }
          else
          {
              //Tag
              if($e[0]=='/')
                  $this->CloseTag(strtoupper(substr($e,1)));
              else
              {
                  //Extract attributes
                  $a2=explode(' ',$e);
                  $tag=strtoupper(array_shift($a2));
                  $attr=array();
                  foreach($a2 as $v)
                  {
                      if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3))
                          $attr[strtoupper($a3[1])]=$a3[2];
                  }
                  $this->OpenTag($tag,$attr);
              }
          }
      }
  }
  
  function OpenTag($tag,$attr)
  {
      //Opening tag
      if($tag=='B' || $tag=='I' || $tag=='U')
          $this->SetStyle($tag,true);
      if($tag=='A')
          $this->HREF=$attr['HREF'];
      if($tag=='BR')
          $this->Ln(5);
  }
  
  function CloseTag($tag)
  {
      //Closing tag
      if($tag=='B' || $tag=='I' || $tag=='U')
          $this->SetStyle($tag,false);
      if($tag=='A')
          $this->HREF='';
  }
  
  function SetStyle($tag,$enable)
  {
      //Modify style and select corresponding font
      $this->$tag+=($enable ? 1 : -1);
      $style='';
      foreach(array('B','I','U') as $s)
      {
          if($this->$s>0)
              $style.=$s;
      }
      $this->SetFont('',$style);
  }
  
  function PutLink($URL,$txt)
  {
      //Put a hyperlink
      $this->SetTextColor(0,0,255);
      $this->SetStyle('U',true);
      $this->Write(5,$txt,$URL);
      $this->SetStyle('U',false);
      $this->SetTextColor(0);
  }
  
  // ********************** Novas Funções Fim.
  
  function Row($data)
   {
     // Calcula a altura da linha.
     $nb=0;
     for ($i=0;$i< count($data);$i++)
       $nb=max($nb,$this->NbLines($this->widths[$i],$data[$i]));
     $h = 5*$nb;
     // Comanda uma quebra de página primeiro, se necessário.
     $this->CheckPageBreak($h);
     // Desenha as células da linha.
     for ($i=0;$i< count($data);$i++)
     {

       if (isset($this->ffamilys[$i]))
       {
         // echo $this->ffamilys[$i].', '.$this->fformats[$i].', '.$this->fsizes[$i].'<br>';
         // exit;
         $this->SetFont($this->ffamilys[$i], $this->fformats[$i], $this->fsizes[$i]);
       }

       $w = $this->widths[$i];
       $a = isset($this->aligns[$i]) ? $this->aligns[$i] : 'L';
       // Salva a posição corrente.
       $x = $this->GetX();
       $y = $this->GetY();
       // Desenha a borda.
       $this->Rect($x,$y,$w,$h);
       // $this->SetLeftMargin($x);
       // $this->SetRigthMargin($x+$w);
       // Preenche o texto.
       $this->MultiCell($w, 5, $data[$i], 0, $a);
       // $this->WriteHTML($data[$i], $w, $a);
       // Define de volta a posição à direita da célula.
       $this->SetXY($x+$w,$y);
     }
     // Avança para a próxima linha.
     $this->Ln($h);
   }

   function CheckPageBreak($h)
   {
     // Se a altura h for causar um "overflow" na página, inclua um avança de página imediatamente.
     if ($this->GetY()+$h>$this->PageBreakTrigger)
       $this->AddPage($this->CurOrientation);
   }
  
   function NbLines($w,$txt)
   {
     // Calcula o número de linhas que a MultiCell de tamanho w irá precisar.
     $cw = &$this->CurrentFont['cw'];
     if ($w==0)
       $w=$this->w-$this->rMargin-$this->x;
     $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
     $s = str_replace("\r",'',$txt);
     $nb = strlen($s);
     if ($nb>0 and $s[$nb-1]=="\n")
       $nb--;
     $sep = -1;
     $i=0;
     $j=0;
     $l=0;
     $nl=1;
     while($i<$nb)
     {
         $c=$s[$i];
         if($c=="\n")
         {
             $i++;
             $sep=-1;
             $j=$i;
             $l=0;
             $nl++;
             continue;
         }
         if($c==' ')
             $sep=$i;
         $l+=$cw[$c];
         if($l>$wmax)
         {
             if($sep==-1)
             {
                 if($i==$j)
                     $i++;
             }
             else
                 $i=$sep+1;
             $sep=-1;
             $j=$i;
             $l=0;
             $nl++;
         }
         else
             $i++;
     }
     return $nl;
   }
  // ***************************** Extensão da Classe FPDF. Fim.

}

$pdf = new PDF("L", "mm", "A4");
$pdf->Open();

$pdf->SetY("-1");

// Assunto.
$pdf->SetSubject("redes");

$sql = 
'select * from '.
'  ( '.
'   select distinct 1 as nivel, "" as ccodigo, conta.conta, conta.descricao as cdescricao, '.
'                   " " as produto, '.
'                   0 as meta_1, 0 as meta_2, 0 as meta_3, 0 as meta_4, 0 as essencial '.
'   from acao, conta '.
'   where substring(acao.conta, 1, 1)=conta.conta '.
$defescolha.
$defsup.
$sele_depto.
$sele_ativas.
'   '.
'   union '.
'    '.
'   select distinct 2 as nivel, "" as ccodigo, conta.conta, conta.descricao as cdescricao, '.
'                   " " as produto, '.
'                   0 as meta_1, 0 as meta_2, 0 as meta_3, 0 as meta_4, 0 as essencial '.
'   from acao, conta '.
'   where substring(acao.conta, 1, 4)=conta.conta '.
$defescolha.
$defsup.
$sele_depto.
$sele_ativas.
'    '.
'   union '.
'   '.
'   select distinct 3 as nivel, conta.codigo as ccodigo, conta.conta, conta.descricao as cdescricao, '.
'                   " " as produto, '.
'                   0 as meta_1, 0 as meta_2, 0 as meta_3, 0 as meta_4, 0 as essencial '.
'   from acao, conta '.
'   where acao.conta=conta.conta '.
$defescolha.
$defsup.
$sele_depto.
$sele_ativas.
'   '.
'   union '.
'   '.
'   select distinct 4 as nivel, "" as ccodigo, concat(acao.conta, ".", acao.item) as conta, '.
'          acao.descricao as cdescricao, '.
'          produto, '.
'                   acao.meta2a as meta_1, acao.meta1a as meta_2, '.
'                   acao.meta3a as meta_3, acao.meta4a as meta_4, essencial '.
'   from acao, conta '.
'   where acao.conta=conta.conta '.
$defescolha.
$defsup.
$sele_depto.
$sele_ativas.
'   '.
'  ) as consulta1 '.
'order by conta, nivel; ';

// echo $sql;
// exit;

$acao    = 0;
$totalm1 = 0;

$tot_1_m1 = 0;
$subcab1 = '';

$tot_2_m1 = 0;
$subcab2 = '';

$tot_3_m1 = 0;
$subcab3 = '';

$key_nivel1 = 0;
$key_nivel2 = 0;
$key_nivel3 = 0;
$key_nivel4 = 0;

$nivel_atual = 0;

$pdf->Ln(5);
$query = mysql_query($sql, $base);
$linhas = mysql_num_rows($query);
if ($linhas < 1) {
  $pdf->Cell( 16,  5, "SemDados", 1, 0, 'C');
}
else {
  $n_registro = 0;
  while ($reg = mysql_fetch_array($query, MYSQL_ASSOC)) {
    if ($reg['essencial']==1) {
      $idessencial = 'Essencial';
    }
    else {
      $idessencial = 'Projeto';
    }
    $acao       = $acao+1;
    $cdescricao = $reg['cdescricao'];
    $produto    = $reg['produto'];
    if (strlen($produto)>69) {
      $jproduto = substr($produto, 0, 66).'...';
    }
    else {
      $jproduto = $produto;
    }

    if ($sel_detalhe=='ac+pr') {
      $produto = $reg['cdescricao'].chr(10).'Produto: '.$reg['produto'];
    }

    if ($reg['nivel']==1) {
      $space = '';
    }
    else if ($reg['nivel']==2) {
      $space = '  ';
    }
    else if ($reg['nivel']==3) {
      $space = '    ';
    }
    else if ($reg['nivel']==4) {
      $space = '     ';
    }
    $nivel = $reg['nivel'];

    if ($nivel<$nivel_atual) {
      if ((($nivel_atual-$nivel)>0) && ($b_ha_sub_3==1)) { 
        $b_ha_sub_3 = 0;
        $total3m1 = number_format($tot_3_m1, 2, ',', '.');

        $pdf->SetFont('Arial', 'B', 11);
        $pdf->SetX(10);
        $pdf->Cell(239, 5, '* Subtotal '.$subcab3.' *', 1, 0, 'R');
        $pdf->SetX(249);
        $pdf->Cell(35, 5, $total3m1, 1, 0, 'R');
        $pdf->Ln(5); 
        $tot_3_m1 = 0;
      }

      if ((($nivel_atual-$nivel)>1) && ($b_ha_sub_2==1)) { 
        $b_ha_sub_2 = 0;
        $total2m1 = number_format($tot_2_m1, 2, ',', '.');

        $pdf->Ln(1); 
        $pdf->SetFont('Arial', 'B', 12);
        $pdf->SetX(10);
        $pdf->Cell(239, 5,'* Subtotal '.$subcab2.' *', 1, 0, 'R');
        $pdf->SetX(249);
        $pdf->Cell(35, 5, $total2m1, 1, 0, 'R');
        $pdf->Ln(7); 
        $tot_2_m1 = 0;
      }

      if ((($nivel_atual-$nivel)>2) && ($b_ha_sub_1==1)) { 
        $b_ha_sub_1 = 0;
        $total1m1 = number_format($tot_1_m1, 2, ',', '.');

        $pdf->Ln(1); 
        $pdf->SetFont('Arial', 'B', 13);
        $pdf->SetX(10);
        $pdf->Cell(239, 5,'* Subtotal '.$subcab1.' *', 1, 0, 'R');
        $pdf->SetX(249);
        $pdf->Cell(35, 5, $total1m1, 1, 0, 'R');
        $pdf->Ln(7); 
        $tot_1_m1 = 0;
      }

    }

    $nivel_atual = $nivel;

    $totalm1 = $totalm1+$reg['meta_1'];

    $tot_3_m1 = $tot_3_m1+$reg['meta_1'];

    $tot_2_m1 = $tot_2_m1+$reg['meta_1'];

    $tot_1_m1 = $tot_1_m1+$reg['meta_1'];


    if ($nivel==4) {
      $b_ha_sub_3 = 1;
      $b_ha_sub_2 = 1;
      $b_ha_sub_1 = 1;
    }

    $meta_1v = number_format($reg['meta_1'], 2, ',', '.');

    
    if ($nivel==1) {
      $res1_conta  = $space.$reg['conta'].'   '.$cdescricao;
      $res1_cdescr = $space.$reg['conta'].'   '.$cdescricao;
      $subcab1     = $space.$reg['conta'].' '.$cdescricao;
      $res1_impres = 1;
    }

    if ($nivel==2) {
     $res2_conta  = $space.$reg['conta'].'   '.$cdescricao;
     $res2_cdescr = $space.$reg['conta'].'   '.$cdescricao;
     $subcab2     = $space.$reg['conta'].' '.$cdescricao;
     $res2_impres = 1;
    }

    if ($nivel==3) {
      $res3_conta  = $space.$reg['conta'];
      $res3_codigo = $reg['ccodigo'];
      $res3_cdescr = $cdescricao;
      $subcab3     = $space.$reg['conta'].' '.$cdescricao;
      $res3_impres = 1;
    }

    // ******************** Detalhado. ********** Início.
    if (($nivel==4) && ($opcao==1)) {
      $val1 = $space.' '.$reg['conta'];
      $val2 = $idessencial;
      $val3 = $produto;
      $val4 = $meta_1v;
      $fbold = $boldcelula;

      $hpb = $pdf->PageBreakTrigger-10; // esta variável contém o limite de impressão na página.
      $hgy = $pdf->GetY(); // esta variável contém a linha atual na página.
      $hup = $hgy; // esta variável testa a impressão dos três cabeçalhos de contas na própria página da ação.

      if ($res1_impres==1) {
        $nbx = $pdf->NbLines(195, $res1_cdescr);
        $hup = $hup+(5*$nbx);
      }

      if ($res2_impres==1) {
        $nbx = $pdf->NbLines(195, $res2_cdescr);
        $hup = $hup+(5*$nbx);
      }

      if ($res3_impres==1) {
        $nbx = $pdf->NbLines(195, $res3_cdescr);
        $hup = $hup+(5*$nbx);
      }

      if (($res1_impres==1)|($res2_impres==1)|($res3_impres==1)) {
        $nbt = $pdf->NbLines(195, $produto);
        $hup = $hup+(5*$nbt);
      }
      if ((($res1_impres==1)|($res2_impres==1)|($res3_impres==1))&&($hup>$hpb)) {
        // se for causar um "overflow" na página, inclua um avança de página imediatamente.
        $pdf->AddPage($pdf->CurOrientation);
      }

      if ($res1_impres==1) {
        $pdf->SetFont('Arial', 'B', 13);
        $pdf->SetX(10);
        $pdf->Cell(239, 5, $res1_cdescr, 1, 0, 'L');
        $pdf->SetX(249);
        $pdf->Cell(35, 5, '', 1, 0, 'R');
        $pdf->Ln(5); 
        $subcab1 = $res1_cdescr; // $space.$reg['conta'].' '.$cdescricao;
        $res1_impres = 0;
      }
      if ($res2_impres==1) {
        $pdf->SetFont('Arial', 'B', 12);
        $pdf->SetX(10);
        $pdf->Cell(239, 5, $res2_cdescr, 1, 0, 'L');
        $pdf->SetX(249);
        $pdf->Cell(35, 5, '', 1, 0, 'R');
        $pdf->Ln(5); 
        $subcab2 = $res2_cdescr; // $space.$reg['conta'].' '.$cdescricao;
        $res2_impres = 0;
      }
      if ($res3_impres==1) {
        // Imprime o cabeçalho da ação.
        $pdf->SetFont('Arial', 'B', 11);
        $pdf->SetX(10);
        $pdf->Cell(25, 5, $res3_conta, 1, 0, 'L');
        $pdf->SetX(35);
        $pdf->Cell(19, 5, $res3_codigo, 1, 0, 'L');
        $pdf->SetX(54);
        $pdf->Cell(195, 5, $res3_cdescr, 1, 0, 'L');
        $pdf->SetX(249);
        $pdf->Cell(35, 5, ' ', 1, 0, 'R');
        $pdf->Ln(5); 
        $subcab3 = $res3_cdescr; // $space.$reg['conta'].' '.$cdescricao;
        $res3_impres = 0;
      }
      // Agora, imprimir a ação.
      $pdf->SetFFontFamily(array("Arial", "Arial", "Arial", "Arial"));
      $pdf->SetFFontMode(array($boldconta, $fbold, $fbold, $fbold));
      $myfont = 10;
      if ($sel_detalhe=='ac+pr') {
        $myfont = 10;
      }

      $pdf->SetFFontFSize(array(9, 10, $myfont, 10));
      $pdf->SetAligns(array("L", "L", "L", "R"));
      $pdf->SetWidths(array(25, 19, 195, 35));
      // srand(microtime()*1000000);
      // for($i=0;$i<20;$i++)
      $pdf->Row(array("$val1", "$val2", "$val3", "$val4"));
      // $pdf->Ln(5); 
    }
    // ******************** Detalhado. ********** Fim.


    // ******************** Simplificado. Início. **********
    if (($nivel==4) && ($opcao==2)) {
      $pdf->SetFont('Arial', $boldconta, 9);
      $pdf->SetX(10);
      $pdf->Cell(35, 5, $space.$reg['conta'], 1, 0, 'L');
      $pdf->SetX(35);
      $pdf->SetFont('Arial', $boldcelula, 8);
      $pdf->Cell(19, 5, $idessencial, 1, 0, 'L');
      $pdf->SetFont('Arial', $boldcelula, 10);
      $pdf->SetX(54);
      $pdf->Cell(205, 5, $jproduto, 1, 0, 'L');
      $pdf->SetX(249);
      $pdf->Cell(35, 5, $meta_1v, 1, 0, 'R');
      $pdf->Ln(5); 
    }
    // ******************** Simplificado. Fim. **********

  }
}

if ($b_ha_sub_3==1) { 
  $b_ha_sub_3 = 0;
  $total3m1 = number_format($tot_3_m1, 2, ',', '.');

  $pdf->SetFont('Arial', 'B', 11);
  $pdf->SetX(10);
  $pdf->Cell(239, 5, '* Subtotal '.$subcab3.' *', 1, 0, 'R');
  $pdf->SetX(249);
  $pdf->Cell(35, 5, $total3m1, 1, 0, 'R');
  $pdf->Ln(5); 
  $tot_3_m1 = 0;
}

if ($b_ha_sub_2==1) { 
  $b_ha_sub_2 = 0;
  $total2m1 = number_format($tot_2_m1, 2, ',', '.');

  $pdf->Ln(1); 
  $pdf->SetFont('Arial', 'B', 12);
  $pdf->SetX(10);
  $pdf->Cell(239, 5,'* Subtotal '.$subcab2.' *', 1, 0, 'R');
  $pdf->SetX(249);
  $pdf->Cell(35, 5, $total2m1, 1, 0, 'R');
  $pdf->Ln(7); 
  $tot_2_m1 = 0;
}

if ($b_ha_sub_1==1) { 
  $b_ha_sub_1 = 0;
  $total1m1 = number_format($tot_1_m1, 2, ',', '.');

  $pdf->Ln(1); 
  $pdf->SetFont('Arial', 'B', 13);
  $pdf->SetX(10);
  $pdf->Cell(239, 5,'* Subtotal '.$subcab1.' *', 1, 0, 'R');
  $pdf->SetX(249);
  $pdf->Cell(35, 5, $total1m1, 1, 0, 'R');
  $pdf->Ln(7); 
  $tot_1_m1 = 0;
}

$total_1 = number_format($totalm1, 2, ',', '.');

$pdf->Ln(5);
$pdf->SetFont('Arial', 'BI',  13);
$pdf->SetX(10);
$pdf->Cell(239, 5,'* TOTAIS *', 1, 0, 'C');
$pdf->SetX(249);
$pdf->Cell(35, 5, $total_1, 1, 0, 'R');

$pdf->Output();
?>

Abraços...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...