Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelookada

DUAS COLUNAS EM FPDF

Recommended Posts

boa tarde, estou com um problema na hora de gerar um pdf, tenho  um lista de valores, traz em while, tudo certo, mas quando ele termina a pagina ele  pula para uma nova pagina, gostaria que fosse criado um outra coluna na mesma pagina, e assim sucessivamente.

 

sou leito em fpdf.

 

$sql = new Query($bd);
	$txt = "SELECT U.CCODIUSUA,
				   U.CNOMEUSUA,
				   T.CENDETITU,
				   T.CBAIRTITU,
				   RETORNA_NOME_TIPO_LOGRADOURO(T.NENDETLOGR) NEND,
				   T.C_CEPTITU,
				   T.CCIDATITU,
				   T.CESTATITU
	FROM HSSUSUA U, HSSTITU T
	WHERE U.NNUMETITU = T.NNUMETITU
	AND U.CTIPOUSUA <> 'F'
	AND U.CTIPOUSUA = 'T'
	AND U.CSITUUSUA = 'A'
	AND T.CCIDATITU = :cidade";
  	$sql->addParam(':cidade',$_SESSION['cidade']);
  	$sql->executeQuery($txt);    
  	
	    
      
		
	while(!$sql->eof())
	{
		
	$pdf->Cell(1,4,$sql->result("CCODIUSUA"),0,1);
	$pdf->Cell(1,3,$sql->result("CNOMEUSUA"),0,1);
	$pdf->Cell($cont,4,$sql->result("NEND"),0,0);
	$pdf->Cell(1,4,$sql->result("CENDETITU"),0,1);
	$pdf->Cell(1,3,$sql->result("CBAIRTITU"),0,1);
	$pdf->Cell(16,4,$sql->result("C_CEPTITU"),0,0);
	$pdf->Cell($cont1,4,$sql->result("CCIDATITU"),0,0);
	$pdf->Cell(1,4,$sql->result("CESTATITU"),0,1);
	$pdf->Cell(1,4,'',0,1);
	$pdf->ln(2); 
	$sql->next();
	}

 

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,  boa tarde.

 

Estou começando agora nessa área, mas humildemente, acredito que já possa ajuda-lo.
Pelo que entendi, você esta usando a biblioteca Fpdf, correto?
Então, pelo que eu estou estudando dela para que você consiga uma outra coluna na mesma pagina você tem que sobrescrever o método padrão AcceptPageBreak().  Esse método é o responsável por fazer a quebra de pagina. 

 

Segue exemplo que retirei do site do Fpdf:

function AcceptPageBreak() {

// Method accepting or not automatic page break

        if($this->col<2) {

// Go to next column

       this->SetCol($this->col+1);

// Set ordinate to top

       $this->SetY($this->y0);

// Keep on page return false; }

else {

// Go back to first column

      $this->SetCol(0);

// Page break

return true; }

 

segue o link: http://www.fpdf.org/, vai em tutorial 4, la você vai ter o exemplo completo. Acredito que te ajude.
Só uma coisa,  a linha " if(
$this->col<2) " é a que define a quantidade de colunas por página. A contagem da primeira coluna começa no zero, logo se você quiser só duas colunas por pagina, terá que colocar col<1, três colunas col<2 e asim por diante.

Espero que te ajude.

abs


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por jvb
      Olá pessoas ... 
      Primeiro de tudo obrigado desde já ... 
      Estou criando conteúdo para estudos, aproveitando o tempo estudando PHP, Mysql e css Juntos e algumas ideias vão surgindo, não que elas sejam pra complicar, mais sim ficar mais objetivo o site Local. Sendo assim, ajuda dos colegas é .
       
      ----------------------------------------
      Eu tenho 3 Colunas >
      Coluna 1
      Coluna 2
      Coluna 3
      as 3 segui height auto, de acordo com conteudo, sendo que a coluna 1 sempre tem height maior, pois é ela que mostra capitulos de um livro, por exemplo.
      A coluna 2 tem conteudo do capitulo selecionado na coluna 1, nela coloco os titulos com links ancoras, de todo o capitulo ( selecionado na coluna 1), obviamente a coluna 3 contem o capitulo, com seus:
      <p></p>
      <img>
      <strong>
      <h1 a h6> etc...
      ok.
       
       
      O problema
      ----------------------------------------
       
      eu gostaria de colocar a coluna 2 seguindo a rolagem da página top e bottom, para top, ok de boa,  consigo com .rolagem { position: stick;} para bottom a coluna 2 é maior que a tela em alguns casos, então eu só consigo ver todo conteúdo ao chegar no final da coluna 1 ou 3.
       
      Então seria na rolagem a baixo, a coluna 2 também rolar, mas ficar com conteudo sempre na tela. Pra baixo rola até o final, pra cima rola até o topo da coluna, nunca sair o conteúdo da tela, não importa o tamanho das colunas 1 e 3. 
      Como posso resolver? tem como só com css? 
       
       
      ---------------------------------------- 
    • Por Leloruhan
      Boa noite , estou com uma duvida de colocar a coluna ao lado da outra , segue imagens do código e do prototipo , alguém consegue me ajudar ? falar em que estou errando.
      TENTEI USAR DISPLAY : FLEX  E INLINE-BLOCK DECLARANDO AS COLUNAS TB MAS "não FUNCIONOU".
    • Por helkton
      oi galera estou criando um sistema para gerenciar certificado de uma escola de cursos ja fiz as condições, pra bloquear conforme as horas aulas, conforme pagamentos, agora estou preso no certificado fPDF
      consegui desenhar a primeira pagina mais o certificado precisará imprimir algumas informações no verso tbm como desenhar a segunda pagina do certificado??
      ja AddPage(), ele adiciona a nova pagina mais como desenhar nesta pagina?? atualmente consegui fazer assim, desenho os 2 pdf separado, tipo clico em um botãoFrente e pego as info da frente do certificado e outro para imprimir apenas a parte do verso rsss
      como juntar tudo e imprimir a frente e o verso
      //***** PDF *****// $pdf = new AlphaPDF(); // Orientação Landing Portraid Page /// $pdf->AddPage('L'); $pdf->SetLineWidth(1.5); // desenha a imagem do certificado $pdf->Image('certificadoBM.jpg',0,0,295); // opacidade total $pdf->SetAlpha(1); // Mostrar texto no topo $pdf->SetFont('TwClassified', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(109,46); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $texto1, '', 'L', 0); // Tamanho width e height e posição //Nome_do_Aluno $pdf->SetFont('Arial', '', 30); // Tipo de fonte e tamanho $pdf->SetXY(20,90); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $nomeAluno, '', 'C', 0); // Tamanho width e height e posição // Mostrar o corpo $pdf->SetFont('Arial', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(20,110); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(265, 10, $texto2, '', 'C', 0); // Tamanho width e height e posição // Mostrar a data no final $pdf->SetFont('Arial', '', 15); // Tipo de fonte e tamanho $pdf->SetXY(20,172); //Parte chata onde tem que ficar ajustando a posição X e Y $pdf->MultiCell(165, 10, $texto3, '', 'L', 0); // Tamanho width e height e posição $pdfdoc = $pdf->Output('', 'S'); // $certificado="arquivos/$nomeAluno.pdf"; //atribui a variável $certificado com o caminho e o nome do arquivo que será salvo (vai usar o CPF digitado pelo usuário como nome de arquivo) // $pdf->Output($certificado,'F'); //Salva o certificado no servidor (verifique se a pasta "arquivos" tem a permissão necessária) // Utilizando esse script provavelmente o certificado ficara salvo em www.seusite.com.br/gerar_certificado/arquivos/999.999.999-99.pdf (o 999 representa o CPF digitado pelo usuário) $pdf->Output(); // Mostrar o certificado na tela do navegador  
    • Por Renison
      Bom dia, sou novato tanto no fórum, como nesta area, seguinte, estou com um pouco de dificuldade em gerar um PDF, na realidade, chega a gerar O PDF, mas nao coloca o resultado, segue a baixo PRINT e o codigo.
       
      ps1: tenho um sistema em PHP 5.4, sistema de clinica, estou querendo gerar relatório de glosa.
       
      <? include("frmvalidarcookie.php"); $idfatu=0; $data1=''; $data2=''; if (isset($_POST["data1"])) $data1=$_POST["data1"]; if (isset($_POST["data2"])) $data2=$_POST["data2"]; if (isset($_POST["idfatu"])) $idfatu=$_POST["idfatu"]; $sql="select b.diaexame,a.idresultados, a.idexame, e.exame as nm_exame, a.quant, a.vr_glosa, a.pa_sa, a.quant*a.pa_sa as pr_total, a.glosado, a.glosado_usu, a.glosado_dat, c.convenio as nm_convenio,p.paciente as nm_paciente,g.id as nm_id from lab_itemresultados a left join lab_resultados b on b.idresultado=a.idresultados left join lab_convenios c on c.idconvenio=b.idconvenio left join lab_exames e on e.idexame=a.idexame left join lab_pacientes p on p.idpaciente=b.idpaciente left join fatu00 f on f.id=b.idlote left join fatu02 g on g.id=f.idfatu02 where a.glosado='S' and g.id=$idfatu order by p.paciente "; echo $sql; require_once("../fpdf/fpdf.php"); class PDF extends FPDF { function Header(){ $this->SetLeftMargin(30); $this->Image('LOGO.jpg' , 72 ,12, 55 , 58,'JPG',''); $this->SetFont('Arial','',12); $this->Cell(0,10,"EMPRESA",0,1,'C'); $this->SetFont('Arial','',8); $this->Cell(0,12," Mossoró/RN",0,1,'C'); $this->SetFont('Arial','BI',10); $this->Ln(10); $this->Cell(0,14,$this->title2,0,1,'C'); $this->Ln(10); //cabeçalho da tabela $this->SetFont('arial','B',8); $this->SetFillColor(212,208,200); $this->Cell(50,15,'Data',1,0,"C",1); $this->Cell(40,15,'OS',1,0,"C",1); $this->Cell(150,15,'Convenio',1,0,"C",1); $this->Cell(150,15,'Paciente',1,0,"C",1); $this->Cell(150,15,'Exame',1,0,"C",1); $this->Cell(30,15,'Quant',1,0,"C",1); $this->Cell(40,15,'Pr.Unit',1,0,"C",1); $this->Cell(50,15,'Total',1,0,"C",1); $this->Cell(50,15,'Glosa em',1,0,"C",1); $this->Cell(50,15,'Vr. Glosa',1,0,"C",1); $this->Cell(30,15,'Fatura',1,1,"C",1); } function Footer() { $this->SetY(-20); //quanto menor,mais distante da base da folha $this->SetFont('Arial','I',8); $this->Cell(0,10,'Pagina '.$this->PageNo(),0,0,'C'); } } $pdf= new PDF("L","pt","A4"); //$pdf->title=$usuario; $pdf->title2='GLOSAS - '.$dt1.' - '.$dt2; $pdf->SetLeftMargin(30); $pdf->SetAutoPageBreak(true,32); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('Arial','',8); //$pdf->MultiCell(200,20,$sql,1,'L',false); $r=ibase_query($sql); $i=0; $t1=0; $t2=0; while($row=ibase_fetch_assoc($r)){ $pdf->Cell(50,15,dataBR($row->DIAEXAME),1,0,"C"); $pdf->Cell(40,15,$row->IDRESULTADOS,1,0,"R"); $pdf->Cell(150,15,substr($row->NM_CONVENIO,0,25),1,0,"L"); $pdf->Cell(150,15,substr($row->NM_PACIENTE,0,25),1,0,"L"); $pdf->Cell(150,15,substr($row->NM_EXAME,0,25),1,0,"L"); $pdf->Cell(30,15,tran0($row->QUANT),1,0,"C"); $pdf->Cell(40,15,tran($row->PA_SA),1,0,"R"); $pdf->Cell(50,15,tran($row->PR_TOTAL),1,0,"R"); $pdf->Cell(50,15,dataBR($row->GLOSADO_DAT),1,0,"C"); $pdf->Cell(50,15,tran($row->VR_GLOSA),1,0,"R"); $pdf->Cell(30,15,$row->NM_ID,1,1,"R"); $i++; $t1=$t1+$row->PR_TOTAL; $t2=$t2+$row->VR_GLOSA; } $pdf->SetFont('Arial','B',8); $pdf->SetFillColor(212,208,200); $pdf->Cell(610,15,"Total: ".$i,1,0,"L",1); $pdf->Cell(50,15,tran($t1),1,0,"R",1); $pdf->Cell(50,15,'',1,0,"R",1); $pdf->Cell(50,15,tran($t2),1,1,"R",1); ob_start(); $pdf->Output("arquivo.pdf","I"); ?>  


    • Por Anderson R.
      Boa tarde, gostaria de saber em SQL, como trazer 2 resultados em 2 colunas diferentes do mesmo campo com valores diferentes como exemplo abaixo.
      Esta é a tabela que tenho, gostaria de trazer where D2_CF = 5401 TRAZER A QUANTIDADE EM UMA COLUNA, AND D2_CF = 5910 TRAZER A QUANTIDADE EM OUTRA COLUNA.
      Se alguém puder ajudar agradeço.
      Anderson
       
      D2_COD D2_QUANT D2_PRCVEN D2_TOTAL D2_CF 010301 10 26,86 268,6 5401 010301 1 26,86 26,86 5910
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.