Buenos días, si quieres usar un reporte en pdf puedes crearlo con fpdf y para crear las rejillas debes de usar las funciones de crear linea te adjunto un ejemplo de un reporte creado me imagino que asi querras formular el tuyo, espero te sirva de ejemplo.
Debes descargar la libreria, la puedes ubicar acá:
http://www.fpdf.org/<?php
include("fpdf.php");
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
//Logo
//$this->Image('../../img/ba_reporte_envio3.jpg',6,3,200);
//Arial bold 15
$this->SetFont('Arial','B',12);
//Movernos a la derecha
$this->Cell(80);
//Título
$this->Cell(30,7,'Envio De Documentos al '.$_SESSION['arch'],0,0,'C');
//Salto de línea
$this->Ln(20);
}
//Pie de página
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','',7);
//Número de página
$this->Cell(20,-10,'SG-002 (27-04-2005)',0,0,'C');
//$this->Cell(0,-10,'Instituto de educación',0,0,'C');
$this->Cell(320,-10,'Página'.$this->PageNo().'/',0,0,'C');
}
}
/***************************************************************************************/
//Conexion con la base de datos
/*$conex= mysql_connect("localhost", "root", "");
if (!$conex){
die ("No se pudo conectar a la Base de Datos:".mysql_error());
}
$db_sel = mysql_select_db("empleados", $conex);
if (!$db_sel){
die ("No se pudo conectar a la Tabla:".mysql_error());
}
$query = "select cedula, nombres from empleados";
$busqueda = mysql_query($query,$conex);
while($row = mysql_fetch_array($busqueda))
{
$code = number_format($row["cedula"],',','.','.');
$name = $row["nombres"];
$column_code = $column_code.$code."\n";
$column_name = $column_name.$name."\n";
}
mysql_close();
/***************************************************************************************/
//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
/**************************************************************************************/
//Encabezado de la Tabla
$Y_Fields_Name_position = 60;
//Archivos que se colocaran debajo de la cabecera
$Y_Table_Position = 66;
//Primero se crea el encabezado de la tabla
//Se coloca color gris al encabezado
/********************************************************************/
//Lineas del Formulario
$pdf->SetFillColor(232,232,232);
// Primera Fila
$pdf->Line(6,27,204,27);// Linea horizontal
$pdf->Line(80,27,80,37);// Linea Vertical
$pdf->Line(6,37,204,37); // Linea Horizontal
$pdf->Line(107,27,107,37);// Linea Vertical
$pdf->Line(137,27,137,37);// Linea Vertical
$pdf->Line(175,27,175,37);// Linea Vertical
$pdf->Line(6,274,202,274);// Linea horizontal Final
// Segunda Fila
$pdf->Line(30,43,30,50); // Linea Vertical
$pdf->Line(49,43,49,50); // Linea Vertical
$pdf->Line(65,47,65,50); // Linea Vertical
$pdf->Line(81,43,81,50); // Linea Vertical
$pdf->Line(94,43,94,50); // Linea Vertical
$pdf->Line(105,43,105,50); // Linea Vertical
$pdf->Line(182,43,182,50); // Linea Vertical
$pdf->Line(6,50,204,50); // Linea Horizontal
// Cuerpo Bucle para hacer repetitivo
$posy=58;
$posyv=50;
for($i=0;$i<20;$i++)
{
$pdf->Line(6,$posy,204,$posy); // Linea Horizontal
$pdf->Line(30,$posyv,30,$posyv+8); // Linea Vertical
$pdf->Line(49,$posyv,49,$posyv+8); // Linea Vertical
$pdf->Line(65,$posyv,65,$posyv+8); // Linea Vertical
$pdf->Line(81,$posyv,81,$posyv+8); // Linea Vertical
$pdf->Line(94,$posyv,94,$posyv+8); // Linea Vertical
$pdf->Line(105,$posyv,105,$posyv+8); // Linea Vertical
$pdf->Line(182,$posyv,182,$posyv+8); // Linea Vertical
$posy=$posy+8;
$posyv=$posyv+8;
}
// Lineas inferior
$pdf->Line(105,213,105,219); // Linea Vertical
$pdf->Line(105,251,105,274); // Linea Vertical
$posicion=219;
for($j=0;$j<5;$j++)
{
$pdf->Line(6,$posicion,204,$posicion); // Linea Horizontal
$posicion=$posicion+8;
}
//Texto Titulos
// Principal
$pdf->SetFont('Arial','B',8);
$pdf->Text(7,30,'Unidad Emisora');
$pdf->Text(81,30,'Fecha de Envío');
$pdf->Text(108,30,'Centro de Costo');
$pdf->Text(138,30,'Archicómodo nro.');
$pdf->Text(176,30,'Extensión');
// Secundario
$pdf->Text(7,40,'Para su custodia estamos enviando los siguientes documentos');
$pdf->Text(7,46,'Código');
$pdf->Text(31,46,'Cantidad');
$pdf->Text(31,49,'de Carpetas');
$pdf->Text(50,46,'Fecha del Documento');
$pdf->Text(52,49,'Inicio');
$pdf->Text(67,49,'Termino');
$pdf->Text(82,46,'Original');
$pdf->Text(95,46,'Copia');
$pdf->Text(108,46,'Descripción');
$pdf->Text(183,46,'Período de');
$pdf->Text(183,49,'Retención');
// Parte Inferior
$pdf->SetFont('Arial','B',8);
$pdf->Text(7,213,'Cantidad de Carpetas');
$pdf->Text(7,216,'Enviadas');
$pdf->Text(108,216,'Recibidas');
$pdf->Text(7,226,'Observaciones');
$pdf->Text(7,256,'Enviado');
$pdf->Text(7,259,'Nombre');
$pdf->Text(108,256,'Recibido');
$pdf->Text(108,259,'Nombre');
$posy=272;
$posx=8;
$posx2=60;
for($j=0;$j<2;$j++)
{
$pdf->Text($posx,$posy,'Firma');
$pdf->Text($posx2,$posy,'Fecha');
$posx=$posx+100;
$posx2=$posx2+100;
}
/********************************************************************/
//Texto encabezado principal
$pdf->SetFont('Arial','',9);
$pdf->Text(138,25,"Nro de Envio:".$nenvio);
$pdf->Text(11,34,$uemite);
$pdf->Text(83,34,$date);
$pdf->Text(110,34,"");
$pdf->Text(140,34,'01');
$pdf->Text(/*178*/-10,/*34*/70,""/*$_SESSION['sql']*/);
/*******************************************************************/
//Texto parte central (Carpetas y Documentos)
$pdf->SetFont('Arial','',7);
$filas = 0;
for ($i=0;$i<$cantidad;$i++)
{
$columnas = 0; $salto =0;
for ($j=0;$j<$ncampos;$j++)
{
$pdf->Text(8+$columnas,55+$filas,$arreglod[$i][$j]);
if (($j==0) || ($j==2))
$salto = 22;
else
$salto = 0;
$columnas = $columnas + $salto + 19;
//$pdf->Text(31,55,'cosa');
}
$filas = $filas + 9;
}
$pdf->Text(25,216,$cantidad);
/*******************************************************************/
//Texto Parte Inferior
$pdf->Text(11,262,$realizado);
$pdf->Text(70,272,$date);
$pdf->Output();
?>