La clase fpd me parece indica para lo que necesitas, es relativamente fácil de usar
He aquí un ejemplo completo funcionado.
¿
¿
<?php
require('fpdf/fpdf.php');
require_once('Connections/tuconexion.php');
include('includes/funciones.php');
//header ('Content-type: application/pdf; charset=utf-8');
class PDF extends FPDF
{
var $widths;
var $aligns;
function SetWidths($w)
{
//Set the array of column widths
$this->widths=$w;
}
function SetAligns($a)
{
//Set the array of column alignments
$this->aligns=$a;
}
function Row($data)
{
//Calculate the height of the row
$nb=0;
for($i=0;$i<count($data);$i++)
$nb=max($nb,$this->NbLines($this->widths[$i],$data[$i]));
$h=5*$nb;
//Issue a page break first if needed
$this->CheckPageBreak($h);
//Draw the cells of the row
for($i=0;$i<count($data);$i++)
{
$w=$this->widths[$i];
$a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'C';
//Save the current position
$x=$this->GetX();
$y=$this->GetY();
//Draw the border
$this->Rect($x,$y,$w,$h);
$this->MultiCell($w,5,$data[$i],0,$a,'true');
//Put the position to the right of the cell
$this->SetXY($x+$w,$y);
}
//Go to the next line
$this->Ln($h);
}
function CheckPageBreak($h)
{
//If the height h would cause an overflow, add a new page immediately
if($this->GetY()+$h>$this->PageBreakTrigger)
$this->AddPage($this->CurOrientation);
}
function NbLines($w,$txt)
{
//Computes the number of lines a MultiCell of width w will take
$cw=&$this->CurrentFont['cw'];
if($w==0)
$w=$this->w-$this->rMargin-$this->x;
$wmax=($w-2*$this->cMargin)*1000/$this->FontSize;
$s=str_replace("\r",'',$txt);
$nb=strlen($s);
if($nb>0 and $s[$nb-1]=="\n")
$nb--;
$sep=-1;
$i=0;
$j=0;
$l=0;
$nl=1;
while($i<$nb)
{
$c=$s[$i];
if($c=="\n")
{
$i++;
$sep=-1;
$j=$i;
$l=0;
$nl++;
continue;
}
if($c==' ')
$sep=$i;
$l+=$cw[$c];
if($l>$wmax)
{
if($sep==-1)
{
if($i==$j)
$i++;
}
else
$i=$sep+1;
$sep=-1;
$j=$i;
$l=0;
$nl++;
}
else
$i++;
}
return $nl;
}
function Header()
{
$this->SetFont('Arial','B',10);
$this->Ln();
$this->Ln(15);
}
function Footer()
{
$this->SetY(-15);
$this->SetFont('Arial','B',7,'C');
$this->Image('logo.jpg' , 25 ,230, 160 , 30,'JPG');
}
}
$paciente= $_GET["id"];
//$con = new DB;
//$pacientes = $con->coctar();
$paciente_reporte = "0";
if (isset($_GET["id"])) {
$paciente_reporte = (get_magic_quotes_gpc()) ? $_GET["id"] : addslashes($_GET["id"]);
}
mysql_select_db($database_procalid, $procalid);
$query_reporte = sprintf("SELECT * from tutabla);
$reporte = mysql_query($query_reporte, $tuconexion) or die(mysql_error());
$row_reporte = mysql_fetch_assoc($reporte);
$totalRows_reporte = mysql_num_rows($reporte);
$pacientes = mysql_query($query_reporte);
$fila = mysql_fetch_array($pacientes);
$pdf=new PDF('P','mm','Letter');
$pdf->Open();
$pdf->AddPage();
$pdf->SetAutoPageBreak(true, 20);
$pdf->SetMargins(20,22,10);
$pdf->Ln(20);
$pdf->Line(20,46,195,46);//impresión de linea
$pdf->Ln(3);
$pdf->Ln(22);
//$pdf->SetAligns('C');
$fecha = $fila['Fecha'];
$ano = substr($fecha, -10, 4);
$mes = substr($fecha, -5, 2);
$dia = substr($fecha, -2, 2);
$pdf->SetWidths(array(60, 65, 20, 15,15));
$pdf->SetFont('Arial','B',7,'R');
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetLineWidth(.5);
$pdf->Row(array('REGISTRO No.', 'CIUDAD', 'DIA', 'MES',utf8_decode('AÑO')));
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetFont('Arial','','','C');
$pdf->SetLineWidth(.5);
$pdf->Row(array($fila ['RegistroNo'], fn_MostrarNombredepartamento ($fila['idCiudad']),$dia,$mes,$ano));
$pdf->SetFont('Arial','u',7);
//$pdf->Cell(0,6,'Ciudad: '.fn_MostrarNombredepartamento($fila['idCiudad']),0,1); //.' '.$fila['apellido_paterno'].' '.$fila['apellido_materno'],0,1);
$pdf->Cell(0,6,'LABORATORIO:LABORATORIO DE ANALISIS DE
$pdf->Ln(0);
$pdf->SetWidths(array(100));
$pdf->SetFont('Arial','B',9);
$pdf->SetFillColor(0,0,47);
$pdf->SetTextColor(255);
$pdf->Ln(2);
$pdf->SetWidths(array(170));
$pdf->SetFont('Arial','B',9);
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetFont('Arial','',8);
$pdf->SetLineWidth(.5);
$pdf->Cell(175,6,'Descripcion de la Muestra:'.$fila['DescriMuestra'],1,1);
$pdf->Ln(5);
$pdf->SetWidths(array(50, 15, 20, 30,35,25));
$pdf->SetFont('Arial','B',7);
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
//$pdf->SetAligns('C');
$pdf->SetLineWidth(.5);
$pdf->Row(array('FECHA MUESTREO', 'HORA', 'LOTE NO.', 'FECHA DE VTO.','AREA', utf8_decode('T° C')));
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetFont('Arial','',7);
$pdf->Row(array($fila ['FechaMuestreo'], $fila['Hora'], $fila['LoteNo'], $fila['FechaVTO'], $fila['Area'], $fila['TemCenti']));
$pdf->Ln(3);
$pdf->SetWidths(array(50, 40, 40,20,25));
$pdf->SetFont('Arial','B',7);
//$pdf->SetAligns('C');
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetLineWidth(.5);
$pdf->Row(array( 'PROVEEDOR', 'MANIPULADOR', 'EMPAQUE','PESO', utf8_decode('T°LLEGADA')));
$pdf->SetFillColor(255,255,255);
$pdf->SetFont('Arial','',7);
$pdf->SetTextColor(0);
$pdf->Row(array( $fila['Proveedor'], $fila['Manipulador'], $fila['Empaque'], $fila['Peso'], $fila['TemLlegada']));
$pdf->Ln(3);
$pdf->SetWidths(array(50, 30, 30, 65));
$pdf->SetFont('Arial','B',7);
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetLineWidth(.5);
$pdf->Row(array('ASPECTO', 'OLOR', 'PH', 'FECHA ANALISIS'));
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetFont('Arial','',7);
$pdf->Row(array($fila ['Aspecto'], $fila['Olor'], $fila['Ph'], $fila['FechaAnalisis']));
$pdf->Ln(2);
$pdf->Cell(175,6,'OBSERVACIONES:'.$fila['Observaciones'],1,1);
$pdf->Ln(3);
$pdf->SetWidths(array(50,25, 25, 40,25,10));
$pdf->SetFont('Arial','B',7,'C');
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetLineWidth(.5);
//$pdf->SetAligns('C');
for($i=0;$i<1;$i++)
{
$pdf->Row(array('ANALISIS MICROBIOLOGICO', 'METODO', 'UNIDAD', 'LIMITE MAX PERMITIDO','RESULTADO','OK'));
}
//$historial = $con->conectar();
$paciente_Recordset1 = "0";
if (isset($_GET["id"])) {
$paciente_Recordset1 = (get_magic_quotes_gpc()) ? $_GET["id"] : addslashes($_GET["id"]);
}
mysql_select_db($database_procalid, $procalid);
$query_Recordset1 = sprintf("SELECT tuconsulta ", $paciente_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $tuconexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$historial1 = mysql_query($query_Recordset1);
$numfilas1 = mysql_num_rows($historial1);
for ($i=0; $i<$numfilas1; $i++)
{
$fila1 = mysql_fetch_array($historial1);
$pdf->SetFont('Arial','',8);
//empieza
$directorioPadre = 'images/';
$ext='.jpg';
//termina
$pdf->SetFillColor(255,255,255);
$pdf->SetTextColor(0);
$pdf->SetFont('Arial','',6);
//$correcto =$pdf->Image($directorioPadre.$fila1['correcto'].$ext,$pdf->GetX() ,$pdf->GetX());
//$pdf->Image($directorioPadre.$fila1['correcto'].$ext ,$pdf->getX(),$pdf->getY(),'R','10')
$pdf->Row(array($fila1 ['NombreAnalisis'], $fila1['Metodo_'], $fila1['Unidad_'], $fila1['LimiteMaxPermitido_'],$fila1['resultado'],fn_correcto($fila1 ['correcto'])));
}
$pdf->Ln(2);
$pdf->SetFont('Arial','',7);
$pdf->SetLineWidth(.2);
$pdf->SetFont('Arial','',7);
$pdf->Cell(175,6,'CONCLUSIONES:'.$fila['Concluciones'],1,1);
$pdf->Cell(175,6,'CONVENSIONES:',0,1);
$pdf->SetFont('Arial','B',7);
$pdf->Cell(42,6,'NA:No Aplica',0,0,'C');
$pdf->Cell(42,6,'SN:Sin Norma',0,0,'C');
$pdf->Cell(42,6,'NI:Norma Interna',0,0,'C');
$pdf->Cell(42,6,'NR:No Registra',0,0,'C');
//$pdf->Output('reporte2.pdf','d');salida a descargar en equipo
$pdf->Output('');
?>