New question

Question:

Date: 18-03-2020 15:46:22 (In Spanish)

generar pdf 2 registros en una solo hoja[Unresolved]

hola foro !!!
esperando me puedan ayudar y es con lo siguiente lo que pretendo es genera un pdf con datos de una tabla quiero que en cada hoja salgan 2 registro el script que tengo con fpdf solo me imprime uno en cada hoja les muestro el codigo como lo tengo

<?
$f1 = $_POST['fol1'];
$f2 = $_POST['fol2'];

include('conecta.php');
require('pdf/fpdf.php');
date_default_timezone_set('America/Mexico_City');

$pdf = new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->Image('imagen/cuauhtemoc.jpg',6,9,-120);

$pdf->SetXY(3,3); //marco
$pdf->cell(204,110,'',1,0); //marco

$pdf->SetFont('Arial','B',12);
$pdf->SetXY(45,10);
$pdf->Cell(50,4, 'Folio Archivo :',0,0,'C');
$pdf->SetXY(120,10);
$pdf->Cell(50,4, 'Num. Oficio :',0,0,'C');
$pdf->SetXY(41,18);
$pdf->Cell(50,4, 'Remitente :',0,0,'C');
$pdf->SetXY(44,27);
$pdf->Cell(50,4, 'Fec. Captura :',0,0,'C');
$pdf->SetXY(119,27);
$pdf->Cell(50,4, 'Fec. Oficio :',0,0,'C');
$pdf->SetXY(10,34);
$pdf->Cell(25,5, 'Asunto :',0,0,'L');
$pdf->SetXY(10,66); // columna fila
$pdf->Cell(25,5, 'Observaciones :',0,0,'L'); //ancho alto


$peticion="Select folio,folio_area,area,DATE_FORMAT(f_captura,'%d/%m/%Y') as f_captura ,DATE_FORMAT(f_oficio,'%d/%m/%Y')
as f_oficio,asunto,observa From oficios where folio>=$f1 && folio <=$f2 ";
$respuesta=mysqli_query($conectado,$peticion);
$dato=mysqli_fetch_array($respuesta);

$pdf->SetFont('Arial','',9);
$pdf->SetXY(86,10);
$pdf->Cell(16,4,$dato['folio'],0,0,"L");
$pdf->SetXY(162,10);
$pdf->Cell(17,4,$dato['folio_area'],0,0,"L");
$pdf->SetXY(79,18);
$pdf->Cell(17,4,$dato['area'],0,0,"L");
$pdf->SetXY(84,27);
$pdf->Cell(17,4,$dato['f_captura'],0,0,"L");
$pdf->SetXY(160,27);
$pdf->Cell(17,4,$dato['f_oficio'],0,0,"L");
$pdf->SetXY(0,27);
$pdf->ln(12);
$pdf->write(4,utf8_decode($dato['asunto']));
$pdf->ln(31);
$pdf->write(4,utf8_decode($dato['observa']));

$pdf->Output();
//$pdf->Output('noe.pdf',D);

?>

GRACIAS
Tags: PHP Votes: 0 - Answers: 3 - Views: 2 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 24-03-2020 13:41:00 Hola,
    where folio>=$f1 && folio <=$f2 
    en esta parte le estas pidiendo a mysql que te traiga todo lo que esta entre mayor o igual a f1 y menor o igual a f2...pero al no usar foreach o while la consulta sólo te trae uno, te recomiendo que leas un poco acerca de while o foreach para que en verdad te traiga TODO lo que esta entre folio 1 y folio 2

    Saludos
      Votes: 0 - Link answer
     
  • Date: 25-03-2020 05:16:10 Hola Joaquín !!!
    gracias por responder lo que deseo es que efectivamente me traiga los folios que el usuario requiera imprimir ya modifique el script, y si se desea imprimir los folio 120 y 123 los imprime pero crea una hoja por folio en este caso crea 4 hojas y lo que pretendo es en cada hoja tenga 2 folios ejemplo en una hoja que tenga folio 120 y folio 121 en otra hoja folio 122 y folio 123 te muestro el script

    $f1 = $_REQUEST['fo1'];
    $f2 = $_REQUEST['fo2'];

    include('conecta.php');
    require('pdf/fpdf.php');

    date_default_timezone_set('America/Mexico_City');
    $pdf = new FPDF();

    $peticion="Select folio,folio_area,area,DATE_FORMAT(f_captura,'%d/%m/%Y') as f_captura ,DATE_FORMAT(f_oficio,'%d/%m/%Y')
    as f_oficio,asunto,observa From oficios where folio>=$f1 && folio <=$f2 ";
    $respuesta=mysqli_query($conectado,$peticion);
    //$dato=mysqli_fetch_array($respuesta);
    $linea = mysqli_num_rows($respuesta);

    if ($linea > 0 ){
    while($dato = mysqli_fetch_array($respuesta)){
    $pdf->AddPage();
    $pdf->Image('imagen/cuauhtemoc.jpg',6,9,-120);
    $pdf->SetXY(3,3);
    $pdf->cell(204,110,'',1,0);
    $pdf->SetFont('Arial','B',12);
    $pdf->SetXY(45,10);
    $pdf->Cell(50,4, 'Folio Archivo :',0,0,'C');
    $pdf->SetXY(120,10);
    $pdf->Cell(50,4, 'Num. Oficio :',0,0,'C');
    $pdf->SetXY(41,18);
    $pdf->Cell(50,4, 'Remitente :',0,0,'C');
    $pdf->SetXY(44,27);
    $pdf->Cell(50,4, 'Fec. Captura :',0,0,'C');
    $pdf->SetXY(119,27);
    $pdf->Cell(50,4, 'Fec. Oficio :',0,0,'C');
    $pdf->SetXY(10,34);
    $pdf->Cell(25,5, 'Asunto :',0,0,'L');
    $pdf->SetXY(10,66); // columna fila
    $pdf->Cell(25,5, 'Observaciones :',0,0,'L');
    // -------------------------------------------------------
    $pdf->SetFont('Arial','',9);
    $pdf->SetXY(86,10);
    $pdf->Cell(16,4,$dato['folio'],0,0,"L");
    $pdf->SetXY(162,10);
    $pdf->Cell(17,4,$dato['folio_area'],0,0,"L");
    $pdf->SetXY(79,18);
    $pdf->Cell(17,4,$dato['area'],0,0,"L");
    $pdf->SetXY(84,27);
    $pdf->Cell(17,4,$dato['f_captura'],0,0,"L");
    $pdf->SetXY(160,27);
    $pdf->Cell(17,4,$dato['f_oficio'],0,0,"L");
    $pdf->SetXY(0,27);
    $pdf->ln(12);
    $pdf->write(4,utf8_decode($dato['asunto']));
    $pdf->ln(31);
    $pdf->write(4,utf8_decode($dato['observa']));
    }

    $pdf->Output();
    //$pdf->Output('noe.pdf',D);
    }else{
    echo"
    <script type='text/javascript'>
    alert('El Folio de Inicio ".$f1." o Folio ".$f2." Final no Existe');
    window.location='menu_reportes_ges.php';
    </script>";
    }
    ?>
    GRACIAS.
      Votes: 0 - Link answer
     
  • Date: 26-03-2020 06:32:17 Entonces solo es necesario que pongas bien los márgenes dentro del fpdf. Depende del tamaño de la hoja puedes o ponerlo uno pegado al otro o uno debajo del otro. veo que sólo unas cell y no multicell, le has dado un ancho fijo, por que no haces una union o un join(cambiando el nombre de las filas para que no te de error de ambigüedad) entre las dos consultas y así en cada línea donde tu deseas que se vean tanto el folio 1 como el folio 2 agregas la variable de cada folio   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com