Autor Tópico: TCPDF Cartão  (Lida 692 vezes)

kleberalmeida

  • Iniciante
  • **
  • Mensagens: 98
    • SelfMaster
TCPDF Cartão
« Online: Outubro 21, 2015, 10:58:31 am »
Amigos,

Como posso criar com TCPDF um cartão para imprimir em PDF com PVC. nas medidas do PVC.

aguardo
Analista de sistemas.
Desenvolvedor WEB, Mobile, Desktop.
Ferramentas.: ScriptCase, Delphi
Banco de Dados.: MySql, Firebird, SqlServer.
http://selfmaster.com.br/

João Carlos TR

  • Iniciante
  • **
  • Mensagens: 50
    • Email
Re:TCPDF Cartão
« Responder #1 Online: Outubro 21, 2015, 10:24:32 pm »
- Crie uma aplicação PdfReport
- Em Configuração:
  > Orientação: Paisagem
  > Tipo: Registro por página
  > Ud Medida: Milimetros
  > Formato PDF: Customizado
  > Altura: 55
  > Largura: 88
  > Destino: Browser
  > Qtde Paginas: 2
 
- Em SQL faça o SELECT pegando os campos que deseja na carteirinha.

- Em LayOut PDF > Interface
  > Defina os campos para textos fixos como Campo: Texto Pré Definido
  > E as variáveis como campos de variáveis.
  > Defina também as posições para todos os campos preenchendo PosX e PosY
  > Faça isso para as DUAS páginas
 
- Em LayOut PDF Código > Selecione LayOut no select e insira o seguinte código abaixo:
 
$pdf->SetLineWidth(0.5);

# PARAMETROS PARA RETANGULOS COM CANTOS ARREDONDADOS#
$x=27; # posição X
$y=27; # posição Y
$w=28;# largura
$h=6;   # altura
$raio=2;
$r=2;

$cantoID = 0;
$cantoIE = 90;
$cantoSE = 180;
$cantoSD = 270;

$x+=$raio;
$y+=$raio;
 
# Linha superior
$pdf->Line($x,$y-$raio,$x+$w-($raio*2),$y-$raio);
# Linha inferior
$pdf->Line($x,$y-$raio+$h,$x+$w-($raio*2),$y-$raio+$h);
# Linha esquerda
$pdf->Line($x-$raio,$y,$x-$raio,$y-($raio*2)+$h);
# Linha direita
$pdf->Line($x-$raio+$w,$y,$x-$raio+$w,$y-($raio*2)+$h);

# Canto Superior Esquerda
for($cantoSE=180; $cantoSE<270; $cantoSE+=$r)
{
   $Xse =((cos($cantoSE*pi()/180))*$raio)+$x;
   $Yse =((sin($cantoSE*pi()/180))*$raio)+$y;
   $X1se =((cos(($cantoSE+$r)*pi()/180))*$raio)+$x;
   $Y1se =((sin(($cantoSE+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xse,$Yse,$X1se,$Y1se);
}

#  Canto Superior Direito
$x+=$w-$raio-$raio;
for($cantoSD=270; $cantoSD<360; $cantoSD+=$r)
{
   $Xsd =((cos($cantoSD*pi()/180))*$raio)+$x;
   $Ysd =((sin($cantoSD*pi()/180))*$raio)+$y;
   $X1sd =((cos(($cantoSD+$r)*pi()/180))*$raio)+$x;
   $Y1sd =((sin(($cantoSD+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xsd,$Ysd,$X1sd,$Y1sd);    
}

# Canto Inferior Direito
$y+=$h-$raio-$raio;
for($cantoID=0; $cantoID<90; $cantoID+=$r)
{
   $Xid =((cos($cantoID*pi()/180))*$raio)+$x;
   $Yid =((sin($cantoID*pi()/180))*$raio)+$y;
   $X1id =((cos(($cantoID+$r)*pi()/180))*$raio)+$x;
   $Y1id =((sin(($cantoID+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xid,$Yid,$X1id,$Y1id);    
}

# Canto Inferior Esquerdo
$x-=$w-$raio-$raio; 
for($cantoIE=90; $cantoIE<180; $cantoIE+=$r)
{
   $Xie =((cos($cantoIE*pi()/180))*$raio)+$x;
   $Yie =((sin($cantoIE*pi()/180))*$raio)+$y;
   $X1ie =((cos(($cantoIE+$r)*pi()/180))*$raio)+$x;
   $Y1ie =((sin(($cantoIE+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xie,$Yie,$X1ie,$Y1ie);    
}   

#  NASCIMENTO #
$x=57;
$y=27;
$w=28;
$h=6;
$raio=2;
$r=2;

$cantoID = 0;
$cantoIE = 90;
$cantoSE = 180;
$cantoSD = 270;

$x+=$raio;
$y+=$raio;
 
# Linha superior
$pdf->Line($x,$y-$raio,$x+$w-($raio*2),$y-$raio);
# Linha inferior
$pdf->Line($x,$y-$raio+$h,$x+$w-($raio*2),$y-$raio+$h);
# Linha esquerda
$pdf->Line($x-$raio,$y,$x-$raio,$y-($raio*2)+$h);
# Linha direita
$pdf->Line($x-$raio+$w,$y,$x-$raio+$w,$y-($raio*2)+$h);

# Canto Superior Esquerda
for($cantoSE=180; $cantoSE<270; $cantoSE+=$r)
{
   $Xse =((cos($cantoSE*pi()/180))*$raio)+$x;
   $Yse =((sin($cantoSE*pi()/180))*$raio)+$y;
   $X1se =((cos(($cantoSE+$r)*pi()/180))*$raio)+$x;
   $Y1se =((sin(($cantoSE+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xse,$Yse,$X1se,$Y1se);
}

#  Canto Superior Direito
$x+=$w-$raio-$raio;
for($cantoSD=270; $cantoSD<360; $cantoSD+=$r)
{
   $Xsd =((cos($cantoSD*pi()/180))*$raio)+$x;
   $Ysd =((sin($cantoSD*pi()/180))*$raio)+$y;
   $X1sd =((cos(($cantoSD+$r)*pi()/180))*$raio)+$x;
   $Y1sd =((sin(($cantoSD+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xsd,$Ysd,$X1sd,$Y1sd);    
}

# Canto Inferior Direito
$y+=$h-$raio-$raio;
for($cantoID=0; $cantoID<90; $cantoID+=$r)
{
   $Xid =((cos($cantoID*pi()/180))*$raio)+$x;
   $Yid =((sin($cantoID*pi()/180))*$raio)+$y;
   $X1id =((cos(($cantoID+$r)*pi()/180))*$raio)+$x;
   $Y1id =((sin(($cantoID+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xid,$Yid,$X1id,$Y1id);    
}

# Canto Inferior Esquerdo
$x-=$w-$raio-$raio; 
for($cantoIE=90; $cantoIE<180; $cantoIE+=$r)
{
   $Xie =((cos($cantoIE*pi()/180))*$raio)+$x;
   $Yie =((sin($cantoIE*pi()/180))*$raio)+$y;
   $X1ie =((cos(($cantoIE+$r)*pi()/180))*$raio)+$x;
   $Y1ie =((sin(($cantoIE+$r)*pi()/180))*$raio)+$y;
   $pdf->Line($Xie,$Yie,$X1ie,$Y1ie);    
}   

# NOME #  >>> Repita o código acima, para qtos campos você quiser e necessitar.

---------------------------------------------

O resultado está nesse link: https://dl.dropboxusercontent.com/u/65102648/sapoclub.png
Tentei incluir aqui, mas não foi permitido, diz q a pasta CMOD não tem permissão blá, blá, blá...

Não inclui o verso, mas é simples também.

** Para cada retângulo com canto arredondado, repeti o código, pois não consegui fazê-lo com Include ou chamando a Biblioteca, se alguém souber, posta aí.

Qquer dúvida, é só chamar.