Pessoal, boa noite!!
Estou desenvolvendo um PDF através da biblioteca TCPDF porém em uma aplicação blank.
Alguém saberia por acaso me dizer como habilitar a régua pra facilitar o posicionamento dos campos na tela?
Agradeço a atenção!
Pessoal, boa noite!!
Estou desenvolvendo um PDF através da biblioteca TCPDF porém em uma aplicação blank.
Alguém saberia por acaso me dizer como habilitar a régua pra facilitar o posicionamento dos campos na tela?
Agradeço a atenção!
Acho que tem classe pronta para isso
Pode criar uma imagemcomo regra.
Ou usar o report pdf mesmo mas de forma livre.
Que tem uma classe, isso tem sim. Mas eu não sei qual é. Essa minha dúvida
Quanto a usar o report pdf, pra mim essa app não funciona adequadamente. Por isso prefiro fazer na mão.
Sim, desenvolver totalmente na mão apenas em vez da blank usar a report pdf.
A classe eu procurei na web mas não achei.
Talvez estudar o fonte de uma report pdf com régua de uma orientação.
Mas afirmo que a report pdf é segura com código aplicado manualmente.
Amanhã cedo resolvo isso para você.
Não achei a classe na web.
Mas criei um funçãozinha para montar a régua e uma grade.
Esta para report_pdf.
Para usar na blank troque $this->Pdf-> para $pdf->, caso o nome do objeto seja pdf.
a cor das linhas podem ser alteradas.
use : regua(largura, altura, grade=true ou false);
*** No report_pdf as margens devem estar zeradas em configurações **
function regua($l=210, $a=297, $grade=FALSE) {
$this->Pdf->SetTextColor(255, 94, 31);
$this->Pdf->SetLineStyle(array('color' => array(255, 139, 71)));
$this->Pdf->SetFont('Courier','', 6);
$this->Pdf->SetMargins(0,0,0);
$m=0; //esquerda
for ($i = 1; $i <= $a-5; $i++) {
$m++;
if ($m == 5) {
$m = 0; $t = 3;
$this->Pdf->SetXY(1,$i-2);
$this->Pdf->Cell(6,3,$i,0,0,'R');
if ($grade && $i>=8 && $i <= $a-6) {
$this->Pdf->SetLineStyle(array('width' => 0.1));
$this->Pdf->Line(8,$i,$l-8,$i);
}
$this->Pdf->SetLineStyle(array('width' => 0.3));
} else {
$t = 2;
$this->Pdf->SetLineStyle(array('width' => 0.1));
}
$this->Pdf->Line(0,$i,$t,$i);
}
$m=3;//direita
for ($i = 4; $i <= $a; $i++) {
$m++;
if ($m == 5) {
$m = 0; $t = 3;
$this->Pdf->SetXY($l-6,$i-2);
if ($i > 5) $this->Pdf->Cell(4,0,$i,0,0,'R');
$this->Pdf->SetLineStyle(array('width' => 0.3));
} else {
$t = 2;
$this->Pdf->SetLineStyle(array('width' => 0.1));
}
$this->Pdf->Line($l-$t,$i,$l,$i);
}
$m=3;//superior
for ($i = 4; $i <= $l; $i++) {
$m++;
if ($m == 5 ) {
$m = 0; $t = 3;
$this->Pdf->SetXY($i-1,2);
if ($i > 5 && $i < $l) $this->Pdf->Cell(4,3,$i,0,0,'R');
if ($grade && $i>=8 && $i <= $l-8) {
$this->Pdf->SetLineStyle(array('width' => 0.1));
$this->Pdf->Line($i,6,$i,$a-6);
}
$this->Pdf->SetLineStyle(array('width' => 0.3));
} else {
$t = 2;
$this->Pdf->SetLineStyle(array('width' => 0.1));
}
$this->Pdf->Line($i,0,$i,$t);
}
$m=0;//inferior
for ($i =1; $i <= $l-6; $i++) {
$m++;
if ($m == 5) {
$m = 0; $t = 3;
$this->Pdf->SetXY($i-1,$a-5);
if ($i < $l-5) $this->Pdf->Cell(4,3,$i,0,0,'R');
$this->Pdf->SetLineStyle(array('width' => 0.3));
} else {
$t = 2;
$this->Pdf->SetLineStyle(array('width' => 0.1));
}
$this->Pdf->Line($i,$a,$i,$a-$t);
}
}
Demo com grade:
https://v9.infinitusweb.com.br/forum_sc/pdf_regua?grade=1
Demo sem grade:
https://v9.infinitusweb.com.br/forum_sc/pdf_regua?grade=0
App Exportada:
TAGS: Haroldo, Report, PDF, TCPDF, Régua, Grade
Régua do TCPDF ?
Muit simples.
Use assim:
…
// Definição das Fontes
$pdf->SetFont(‘helvetica’, ‘’, 10, ‘’, true);
//Habilitar Regua
$pdf->grid = true;
// Regua de Apoio com espaçamento da grade de 10mm
$pdf->grid = 10;
$pdf->AddPage();
…
seu codigo
…
// Disabilitar a Regua
$pdf->grid = false;
$pdf->AddPage();
Att,
Paulo.
Bom dia Paulo, eu tinha algo parecido com isso tbm. De qualquer forma, tentei usar esse seu código mas não funcionou também. Depois vou testar a solução do Haroldo.
Não existe essa propriedade na classe TCPDF, pelo menos não encontrei alguma referência, nem na FPDF. Bem que pesquisei em todas propriedades para ver se achava algo pronto para ajudar na questão.
Talvez seja uma propriedade de uma subclasse estendida da classe TCPDF…
A régua que o SC aplica, distorce 2 milímetros das posições reais:
Segue sugestão para mudança na régua do SC:
Linhas mais finas.
Menos espessura na régua.
Possibilidade de aplicar cor.
Possibilidade de aplicar uma grade.
abaixo tem um link de um video no youtube:
no tempo: 15:51 fala sobre a regua
Não consegui em nenhuma das soluções passadas. Como estava com pressa no desenvolvimento do PDF acabei fazendo na marra. Depois vou dar uma olhada com calma.
Implementei uma classe incluindo essa rotina de régua e outras rotinas de apoio ao desenvolvimento com TCPF.
Apesar de eu ter desenvolvido essa função exclusivamente para atender ao solicitante desse tópico e infelizmente ele não conseguiu implementar, estou disonibilizando a classe para seu uso.
Basta importar como biblioteca externa no SC, incluir via sc_include_library, instÇanciar a classe passando coo parâmetro ao construtor o handle do objteto principal instânciado na classe TCPDF.
Pode ser usado em Blank, Report PDF e com php puro.
Muitos me pediram essa rotina quando da criação desse video:
O nome da rotina mudou de printCell para pCell e é um método da classe em questão.
Críticas e sugestões são sempre bem vindas.