2011-03-28 26 views
7

Este es mi código para generar PDF usando FPDF en php. Quiero mostrar el semestre, el mes de facturación y el billyear en el archivo PDF. No quiero mostrar los valores en la tabla.
Quiero mostrar en la parte superior de la página. ¿Cómo puedo hacer esto? ¿Cualquier sugerencia? Gracias por adelantado. Aclamaciones.Mostrando valores en FPDF

<?php 

    session_start(); 
    require('fpdf/fpdf.php'); 

    //Connect to your database 

    $r1=$_SESSION['sem1']; 

    $con=mysql_connect('localhost','root',''); 

    if(!$con) 
    { 
    die('Unable to connect'.mysql_error()); 
    } 
    mysql_select_db('hostel',$con); 

    $result=mysql_query("SELECT r.hosteladmissionno, 
      r.student_name, 
      r.semester, 
      r.blockname 
      r.branch, 
      m.billmonth,m.billyear , 
      (s.days_mess*perdayrate) AS mess_charges, 
      m.perdayrate, 
      s.days_mess,s.nv_tokens 
      FROM registration r,student_month s,messexp m 
      WHERE s.hosteladmissionno = r.hosteladmissionno 
      AND r.mess_type=m.messtype 
      AND m.billmonth = 'March' AND m.billyear= '2014'"); 
     $number_of_products = mysql_numrows($result); 

    while($row = mysql_fetch_array($result)) 
    { 
     $hostad = $row['hosteladmissionno']; 
     $name = $row['student_name']; 
     $block=$row['blockname']; 
     $branch=$row['branch']; 
     $perday=$row['perdayrate']; 
     $days=$row['days_mess']; 
     $messch= $row['mess_charges']; 
     $nv=$row['nv_tokens']; 




     $column_no = $column_no.$hostad."\n"; 
     $column_name = $column_name.$name."\n"; 
     $sem_details= $sem_details.$block."\n"; 
     $comm_details= $comm_details.$branch."\n"; 
     $course_details= $course_details.$perday."\n"; 
     $courseyr_details= $courseyr_details.$days."\n"; 
     $mess_details= $mess_details.$messch."\n"; 
     $block_details= $block_details.$nv."\n"; 



    } 
    mysql_close(); 

    //Create a new PDF file 
    $pdf=new FPDF('P','mm','A4'); 

    $pdf->AddPage(); 

    //Fields Name position 
    $Y_Fields_Name_position = 40; 
    //Table position, under Fields Name 
    $Y_Table_Position = 46; 
    $pdf->Cell(15,50,'Anna University Hostels'); 
    //First create each Field Name 
    //Gray color filling each Field Name box 
    $pdf->SetFillColor(232,232,232); 
    //Bold Font for Field Name 
    $pdf->SetFont('Arial','B',9); 
    $pdf->SetY($Y_Fields_Name_position); 
    $pdf->SetX(5); 
    $pdf->Cell(23,6,'Admission No',1,0,'L',1); 
    $pdf->SetX(28); 
    $pdf->Cell(37,6,'Student Name',1,0,'L',1); 
    $pdf->SetX(65); 
    $pdf->Cell(18,6,'Block Name',1,0,'L',1); 
    $pdf->SetX(83); 
    $pdf->Cell(20,6,'Branch',1,0,'L',1); 
    $pdf->SetX(103); 
    $pdf->Cell(22,6,'Per Day Rate',1,0,'L',1); 
    $pdf->SetX(125); 
    $pdf->Cell(22,6,'No of Days',1,0,'L',1); 
    $pdf->SetX(147); 
    $pdf->Cell(20,6,'Mess charge',1,0,'L',1); 
    $pdf->SetX(167); 
    $pdf->Cell(18,6,'NV Token',1,0,'L',1); 
    $pdf->SetX(185); 
    $pdf->Cell(25,6,'Block Name',1,0,'L',1); 
    $pdf->Ln(); 

    //Now show the 3 columns 
    $pdf->SetFont('Arial','',12); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(5); 
    $pdf->MultiCell(23,6,$column_no,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(28); 
    $pdf->MultiCell(37,6,$column_name,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(65); 
    $pdf->MultiCell(18,6,$block,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(83); 
    $pdf->MultiCell(20,6,$branch,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(103); 
    $pdf->MultiCell(22,6,$perday,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(125); 
    $pdf->MultiCell(22,6,$days,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(147); 
    $pdf->MultiCell(20,6,$messch,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(167); 
    $pdf->MultiCell(18,6,$nv,1); 
    $pdf->SetY($Y_Table_Position); 
    $pdf->SetX(185); 
    $pdf->MultiCell(25,6,$block_details,1); 
    $i = 0; 
    $pdf->SetY($Y_Table_Position); 
    while ($i < $number_of_products) 
    { 
     $pdf->SetX(5); 
     $pdf->MultiCell(205,6,'',1); 
     $i = $i +1; 
    } 
    $pdf->Output(); 
    ?> 
+2

Más o menos lo mismo que ya lo están haciendo ... encontrar la X/Y de donde usted quiere, añadir una célula ... – Orbling

+0

no soy capaz de mostrar que cuando creo una celda separada , su error de regreso. – Coolbreeze

+1

@Dinzy: 'Cell()' está devolviendo un error? ¿Le está pasando parámetros no válidos? – Orbling

Respuesta

1

Agregue esto a su código entre la línea $Y_Table_Position = 46 y la línea $pdf->Cell(15,50,'Anna University Hostels');, se mostrará "semestre, mes, año" color gris en la parte superior derecha de la página (cambiar semestre, mes, año con sus valores reales) .

//Fields Name position 
    $Y_Fields_Name_position = 40; 
    //Table position, under Fields Name 
    $Y_Table_Position = 46; 
// ABOVE IS YOUR ORIGINAL CODE, ADD The FOLOWING LINES 

    $pdf->SetXY(160,0); 
    $pdf->SetFont('Times','B',6); 
    $pdf->SetTextColor('139','140','142'); 
    $pdf->Cell(5,15,'Semester,Month,Year',0,0,'L'); 

    $pdf->SetTextColor('0','0','0'); 
    $pdf->SetXY(16,8); 

// CONTINUE WITH ORIGINAL CODE 
    $pdf->Cell(15,50,'Anna University Hostels'); 
    //First create each Field Name 
    //Gray color filling each Field Name box 
    $pdf->SetFillColor(232,232,232); 

como mejor le vaya a X = 160, Y = 0 y crear un nuevo celular con el texto deseado, fuente personalizada y el color, después de eso, se cambia el color a negro (pd mi defecto color de fuente es blanco) e ir a X = 16, Y = 8 por lo que sus "Albergues de Anna University" se imprimen en la misma posición. Después de eso, tu tabla se imprimirá como antes.

Espero que entienda su pregunta, y esto es lo que está buscando. (si no deja un comentario :))

1

Configure las cosas de las que habló en la función de encabezado.

function header() 
{ 
    $this->SetFont('whatever the font u like','B',23)//I just randomly set fonts 
    $this->Cell(30,10,'$_POST['user_id']',0,0,'C'); 
    ... 
    ... 
}