How to use setx() and setY() methods from the FPDF library.

Asked

Viewed 2,115 times

1

I have already researched the Internet but I have not received any clarification on the subject, I would like to know if anyone could demonstrate a procedure for using these methods.

I’m creating a header with the library fpdf and need to use the methods setX and setY to adjust my content, but I don’t know how to do it. How to use these functions correctly?

  • 1

    Have you looked at the documentation? setY and setx.

  • yes, but I didn’t understand!

  • But why do you think setX and setY will serve you?

  • It would be to draw a rectangle?

  • So, I need to create a header using setx and setY, as it will have images and various tables.

  • http://www.fpdf.org/en/doc/index.php

  • puts setx(30); and then put some text with Cell, vc will see the text, the place where the text starts is the x position you defined with the 30

Show 2 more comments

3 answers

1

This serves to define the positioning of the element you will make the output, works like a pointer, at each "set" it puts your pointer in the desired position:

//posiciona verticalmente 
$pdf->SetY("20"); 

//posiciona horizontalmente 
$pdf->SetX("10"); 

You can set too:


//define as fontes atraves da pasta font 
define('FPDF_FONTPATH','font/'); 
/* instancia a classe FPDF passando a Orientação da página,
   medida e Tipo de Folha; */ 
$pdf = new FPDF("P","mm","A5"); 

//fonte do documento
$pdf->SetFont('arial','',10); 

//posição na vertical no caso -2 seria o limite da margem 
$pdf->SetY("-2"); 

//::::::::::::::::::Cabecalho:::::::::::::::::::: 
//escreve o titulo.... 
//largura = 0 
//altura = 5 
//texto
//borda = 0 
//quebra de linha = 0 
//alinhamento = L (esqueda) 
$pdf->Cell(0,5,'titulo blábláblá',0,0,'L'); 

//escreve um subtítulo... 
//largura = 0 
//altura = 5
//texto 
//borda = 0 
//quebra de linha = 1 
// alinhamento = R (direita) 
$pdf->Cell(0,5,'subtítulo blábláblá',0,1,'R'); 

//escreve uma linha qualquer... 
//largura = 0 
//altura = 0 
//texto
//borda = 1 
//quebra de linha = 1 
// alinhamento = L (esqueda) 
$pdf->Cell(0,0,'',1,1,'L'); 

//quebra de linha 
$pdf->Ln(8); 

//::::::::::::::::::Define o conteúdo de texto::::::::::::::::::::: 
//tamanho de fonte e tipo 
$pdf->SetFont('times','',8); 

//posiciona verticalmente o texto 
$pdf->SetY("20"); 

//posiciona horizontalmente e horizontalmente
$pdf->SetX("10"); 

//escreve o conteudo de texto 
$texto="Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

Morbi commodo ut erat vitae ultrices. Sed urna nisi, sodales sed lorem vel, dictum euismod orci. 

Donec viverra vulputate leo, a laoreet erat posuere ac. Quisque vel leo neque. Aliquam in diam semper nibh mattis pellentesque. 

Donec nulla nibh, ornare sit amet lorem nec, ornare consequat est. Mauris molestie lorem eget euismod tristique. 

" ;
//escreve a saída do texto
$pdf->Write(5, $texto); 

//::::::::::::::::::definindo o rodapé da página:::::::::::::::::::::: 
//posiciona verticalmente 
$pdf->SetY("185"); 

//define a fonte do rodapé
$pdf->SetFont('arial','',8); 
//se quiser colocar uma data no rodapé... 
$data = date("d/m/Y"); 
$formtData="criado em ".$data; 
$pdf->Cell(0,0,'',1,1,'L'); 
$pdf->Cell(0,4,'São Paulo - SP',0,1,'R'); 
//faz a saída da data
$pdf->Cell(0,4,$formtData,0,0,'R');

//executa a criação do arquivo
$pdf->Output("helloworld.pdf", "I"); //S (salvar) ou I (imprimir) 

0

Then someone can be of help! The use is:

$var->setX(valor eixo x);
$var->Cell();

$var->setY(valor eixo y);
$var->Cell();

$var->setXY(eixo x, eixo y);
$var->Cell();
  • 2

    That doesn’t explain much could detail the answer ?

0

Hello, so according to the above comment

Say you set these parameters

// Definir o SetX
$pdf->SetX("20");
// Definir o SetY
$pdf->SetY("30");

All the elements you create below will be in that location. To set different places for each element, you should always set another X, Y before

For example:

$pdf->SetX("20"); // Aqui eu estou definindo o X da primeira célula
$pdf->SetY("30"); // Aqui eu estou definindo o X da primeira célula
$pdf->Cell(0,0,'',1,1,'L'); // Aqui eu estou criando a primeira célula

// Agora eu quero outra célula em outra posição, é só eu definir o X, Y novamente
$pdf->SetX("10"); // Aqui eu estou definindo o X da segunda célula
$pdf->SetY("5"); // Aqui eu estou definindo o X da segunda célula
$pdf->Cell(0,0,'',1,1,'L'); // Aqui eu estou criando a segunda célula

And so on until you finish the amount of cell you want

Browser other questions tagged

You are not signed in. Login or sign up in order to post.