TCPDF Cartão

Amigos,

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

aguardo

  • 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($cantoSEpi()/180))$raio)+$x;
$Yse =((sin($cantoSEpi()/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($cantoSDpi()/180))$raio)+$x;
$Ysd =((sin($cantoSDpi()/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($cantoIDpi()/180))$raio)+$x;
$Yid =((sin($cantoIDpi()/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($cantoIEpi()/180))$raio)+$x;
$Yie =((sin($cantoIEpi()/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($cantoSEpi()/180))$raio)+$x;
$Yse =((sin($cantoSEpi()/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($cantoSDpi()/180))$raio)+$x;
$Ysd =((sin($cantoSDpi()/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($cantoIDpi()/180))$raio)+$x;
$Yid =((sin($cantoIDpi()/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($cantoIEpi()/180))$raio)+$x;
$Yie =((sin($cantoIEpi()/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.