Foros del Web » Programando para Internet » PHP »

crear pdf

Estas en el tema de crear pdf en el foro de PHP en Foros del Web. bueno mi pregunta es como mostrar en un pdf datos que de una base de datos tengo este script Código PHP: $conexA =  mysql_connect ( ...
  #1 (permalink)  
Antiguo 12/08/2012, 17:51
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Exclamación crear pdf

bueno mi pregunta es como mostrar en un pdf datos que de una base de datos tengo este script

Código PHP:

$conexA
mysql_connect("localhost","root","malu1101")
    or die(
"No se pudo realizar la conexion");
 
$conexB=mysql_select_db("practica",$conexA)
    or die(
"ERROR con la base de datos");


include (
'fpdf/fpdf.php');

        
$pdf = new FPDF();
        
$pdf->AddPage();
        
$consulta=mysql_query("SELECT * FROM prueba WHERE cedula='".$_POST['cedula']."'");
        
$fila=mysql_fetch_array($consulta);

        echo 
$fila['nombre'];
        echo 
$fila['cedula'];

        
$pdf->Output("prueba.pdf",'F');
        echo 
"<script language='javascript'>window.open('prueba.pdf','_self','');</script>";
        exit; 

me muestra en el navegador la forma del pdf pero no me muestra nada de información
__________________
Luis Alfonso Cruz Valbuena
[email protected]
  #2 (permalink)  
Antiguo 12/08/2012, 18:37
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: crear pdf

A lo mejor tienes que usar algún método de la clase FPDF(), ya que así solo generarías una salida sin respetar el tipo de contenido MIME..
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #3 (permalink)  
Antiguo 12/08/2012, 18:43
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Exclamación Respuesta: crear pdf

Cita:
Iniciado por xIamAlex Ver Mensaje
A lo mejor tienes que usar algún método de la clase FPDF(), ya que así solo generarías una salida sin respetar el tipo de contenido MIME..
y no sabrías decirme que función usar
__________________
Luis Alfonso Cruz Valbuena
[email protected]
  #4 (permalink)  
Antiguo 12/08/2012, 18:46
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 6 meses
Puntos: 15
Respuesta: crear pdf

la libreria fpdf no utiliza echo, sino funciones predeterminadas para poder excribir en ella.

Te aconsejo que veas los tutoriales de www.fpdf.org

esto es un ejemplo de ello:

<?php
require('fpdf.php');

class PDF extends FPDF
{
function Header()
{
global $title;

// Arial bold 15
$this->SetFont('Arial','B',15);
// Calculamos ancho y posición del título.
$w = $this->GetStringWidth($title)+6;
$this->SetX((210-$w)/2);
// Colores de los bordes, fondo y texto
$this->SetDrawColor(0,80,180);
$this->SetFillColor(230,230,0);
$this->SetTextColor(220,50,50);
// Ancho del borde (1 mm)
$this->SetLineWidth(1);
// Título
$this->Cell($w,9,$title,1,1,'C',true);
// Salto de línea
$this->Ln(10);
}

function Footer()
{
// Posición a 1,5 cm del final
$this->SetY(-15);
// Arial itálica 8
$this->SetFont('Arial','I',8);
// Color del texto en gris
$this->SetTextColor(128);
// Número de página
$this->Cell(0,10,'Página '.$this->PageNo(),0,0,'C');
}

function ChapterTitle($num, $label)
{
// Arial 12
$this->SetFont('Arial','',12);
// Color de fondo
$this->SetFillColor(200,220,255);
// Título
$this->Cell(0,6,"Capítulo $num : $label",0,1,'L',true);
// Salto de línea
$this->Ln(4);
}

function ChapterBody($file)
{
// Leemos el fichero
$txt = file_get_contents($file);
// Times 12
$this->SetFont('Times','',12);
// Imprimimos el texto justificado
$this->MultiCell(0,5,$txt);
// Salto de línea
$this->Ln();
// Cita en itálica
$this->SetFont('','I');
$this->Cell(0,5,'(fin del extracto)');
}

function PrintChapter($num, $title, $file)
{
$this->AddPage();
$this->ChapterTitle($num,$title);
$this->ChapterBody($file);
}
}

$pdf = new PDF();
$title = '20000 Leguas de Viaje Submarino';
$pdf->SetTitle($title);
$pdf->SetAuthor('Julio Verne');
$pdf->PrintChapter(1,'UN RIZO DE HUIDA','20k_c1.txt');
$pdf->PrintChapter(2,'LOS PROS Y LOS CONTRAS','20k_c2.txt');
$pdf->Output();
?>
  #5 (permalink)  
Antiguo 12/08/2012, 18:52
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: crear pdf

Cita:
Iniciado por kakashi20 Ver Mensaje
la libreria fpdf no utiliza echo, sino funciones predeterminadas para poder excribir en ella.

Te aconsejo que veas los tutoriales de www.fpdf.org

esto es un ejemplo de ello:

<?php
require('fpdf.php');

class PDF extends FPDF
{
function Header()
{
global $title;

// Arial bold 15
$this->SetFont('Arial','B',15);
// Calculamos ancho y posición del título.
$w = $this->GetStringWidth($title)+6;
$this->SetX((210-$w)/2);
// Colores de los bordes, fondo y texto
$this->SetDrawColor(0,80,180);
$this->SetFillColor(230,230,0);
$this->SetTextColor(220,50,50);
// Ancho del borde (1 mm)
$this->SetLineWidth(1);
// Título
$this->Cell($w,9,$title,1,1,'C',true);
// Salto de línea
$this->Ln(10);
}

function Footer()
{
// Posición a 1,5 cm del final
$this->SetY(-15);
// Arial itálica 8
$this->SetFont('Arial','I',8);
// Color del texto en gris
$this->SetTextColor(128);
// Número de página
$this->Cell(0,10,'Página '.$this->PageNo(),0,0,'C');
}

function ChapterTitle($num, $label)
{
// Arial 12
$this->SetFont('Arial','',12);
// Color de fondo
$this->SetFillColor(200,220,255);
// Título
$this->Cell(0,6,"Capítulo $num : $label",0,1,'L',true);
// Salto de línea
$this->Ln(4);
}

function ChapterBody($file)
{
// Leemos el fichero
$txt = file_get_contents($file);
// Times 12
$this->SetFont('Times','',12);
// Imprimimos el texto justificado
$this->MultiCell(0,5,$txt);
// Salto de línea
$this->Ln();
// Cita en itálica
$this->SetFont('','I');
$this->Cell(0,5,'(fin del extracto)');
}

function PrintChapter($num, $title, $file)
{
$this->AddPage();
$this->ChapterTitle($num,$title);
$this->ChapterBody($file);
}
}

$pdf = new PDF();
$title = '20000 Leguas de Viaje Submarino';
$pdf->SetTitle($title);
$pdf->SetAuthor('Julio Verne');
$pdf->PrintChapter(1,'UN RIZO DE HUIDA','20k_c1.txt');
$pdf->PrintChapter(2,'LOS PROS Y LOS CONTRAS','20k_c2.txt');
$pdf->Output();
?>
la dirección que me das no funciona y pues si me pueden a yudar con un ejemplo pero con datos de base de datos, gracias
__________________
Luis Alfonso Cruz Valbuena
[email protected]
  #6 (permalink)  
Antiguo 12/08/2012, 18:59
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: crear pdf

Cita:
Iniciado por trofserpiente Ver Mensaje
y no sabrías decirme que función usar
Nunca he trabajado con ella

Pero encontré algo interesante en una web, no se si esté permitido copiar contenido de otra página pero me arriesgo (jeje) aquí va citando al autor(a):

Cita:
came across thsi little gem while searching for a PHP class that allowed me to create PDFs on the fly using PHP. Basically, FPDF is a PHP class which generates PDF files using PHP. It is a free class and full documentation of its use and hw to use it can be found here .

With FPDF you can format a PDF in the same way that you would any PDF. There is support for header and footers, page breaks, images, colors and font-styling and page compression amongst other things.

FPDF works with PHP4 and PHP5.

The class is available for download from the FPDF site .

Once downloaded, put the class into site wherever you fancy and creating a PDF can be as simple as using the following code:

<?php
require('fpdf.php');

$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
Full documentation on how to use FPDF can be found on the main site at: http://www.fpdf.org/

Try it, you might like it
Enlace, página, autor -> http://nick.boldison.com/websites/ph...les-using-php/

Según esto debes usar estos dos métodos SetFont() y Cell(), probá con $pdf->SetFont('Arial','B',16); y luego $pdf->Cell(40,10,$fila['nombre']. $fila['cedula']); justo antes del output a ver si va
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #7 (permalink)  
Antiguo 12/08/2012, 19:01
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 6 meses
Puntos: 15
Respuesta: crear pdf

la direccion si funciona, pero algunas algunas conexiones de internet la bloquean:
require("fpdf.php");

$conexA= mysql_connect("localhost","root","malu1101")
or die("No se pudo realizar la conexion");
$conexB=mysql_select_db("practica",$conexA)
or die("ERROR con la base de datos");

$consulta=mysql_query("SELECT * FROM prueba WHERE cedula='".$_POST['cedula']."'");
$fila=mysql_fetch_array($consulta);




class PDF extends FPDF
{
// Cabecera de página
function Header()
{
// Logo
//$this->Image('imagenes/LOGO_EMPRESA.png',180,10,20);
// Arial bold 15
$this->SetFont('Arial','I',11);
// Movernos a la derecha
$this->SetY(8);
$this->SetX(60);
// Título
//$this->Cell(80,10,"ESTO ES UN DUPLICADO DE LA FACTURA, NO TIENE NINGUN VALOR",0,0,'C');
// Salto de línea
$this->Ln(20);
}

function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',6);
//Número de página
$this->Cell(0,10,'Hoja '.$this->PageNo().'/{nb}',0,0,'C');
}

function texto_negrita($label)
{
//Arial 12
$this->SetFont('Arial','B',11);
//Color de fondo
//$this->SetFillColor(252,240,239);
//Título
$this->Cell(40,10,"$label",0,0,'L');
//Salto de línea
$this->Ln(0);
}

function texto($label)
{
//Arial 12
$this->SetFont('Arial','',11);
//Color de fondo
//$this->SetFillColor(252,240,239);
//Título
$this->Cell(70,10,"$label",0,0,'L');
//Salto de línea
$this->Ln(0);
}







}

$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();

$pdf->SetY(13); // CORDENADAS X DE L AHOJA
$pdf->SetX(85); // CODERNANDAS Y DE LA HOJA
$pdf->texto($fila['nombre']);




$pdf->Output('320.pdf','D');
  #8 (permalink)  
Antiguo 12/08/2012, 19:14
Avatar de trofserpiente  
Fecha de Ingreso: julio-2012
Ubicación: Lerida
Mensajes: 220
Antigüedad: 11 años, 9 meses
Puntos: 1
Exclamación Respuesta: crear pdf

Cita:
Iniciado por kakashi20 Ver Mensaje
la direccion si funciona, pero algunas algunas conexiones de internet la bloquean:
require("fpdf.php");

$conexA= mysql_connect("localhost","root","malu1101")
or die("No se pudo realizar la conexion");
$conexB=mysql_select_db("practica",$conexA)
or die("ERROR con la base de datos");

$consulta=mysql_query("SELECT * FROM prueba WHERE cedula='".$_POST['cedula']."'");
$fila=mysql_fetch_array($consulta);




class PDF extends FPDF
{
// Cabecera de página
function Header()
{
// Logo
//$this->Image('imagenes/LOGO_EMPRESA.png',180,10,20);
// Arial bold 15
$this->SetFont('Arial','I',11);
// Movernos a la derecha
$this->SetY(8);
$this->SetX(60);
// Título
//$this->Cell(80,10,"ESTO ES UN DUPLICADO DE LA FACTURA, NO TIENE NINGUN VALOR",0,0,'C');
// Salto de línea
$this->Ln(20);
}

function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',6);
//Número de página
$this->Cell(0,10,'Hoja '.$this->PageNo().'/{nb}',0,0,'C');
}

function texto_negrita($label)
{
//Arial 12
$this->SetFont('Arial','B',11);
//Color de fondo
//$this->SetFillColor(252,240,239);
//Título
$this->Cell(40,10,"$label",0,0,'L');
//Salto de línea
$this->Ln(0);
}

function texto($label)
{
//Arial 12
$this->SetFont('Arial','',11);
//Color de fondo
//$this->SetFillColor(252,240,239);
//Título
$this->Cell(70,10,"$label",0,0,'L');
//Salto de línea
$this->Ln(0);
}







}

$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();

$pdf->SetY(13); // CORDENADAS X DE L AHOJA
$pdf->SetX(85); // CODERNANDAS Y DE LA HOJA
$pdf->texto($fila['nombre']);




$pdf->Output('320.pdf','D');
muchas gracias e entendido ya un poco mas mi pregunta es si no quiero que se descargue si no que me lo muestre en l navegador que tengo que hacer y reitero muchas gracias por brindar sus conocimientos al aprendizaje
__________________
Luis Alfonso Cruz Valbuena
[email protected]
  #9 (permalink)  
Antiguo 12/08/2012, 19:19
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: crear pdf

Cita:
Iniciado por trofserpiente Ver Mensaje
muchas gracias e entendido ya un poco mas mi pregunta es si no quiero que se descargue si no que me lo muestre en l navegador que tengo que hacer y reitero muchas gracias por brindar sus conocimientos al aprendizaje
¿Por casualidad leíste mi último mensaje ?

Ya estás casi resuelto colega solo te falta hacer lo que te digo
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #10 (permalink)  
Antiguo 12/08/2012, 19:28
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 6 meses
Puntos: 15
Respuesta: crear pdf

para que no descargue coloca solo:

$pdf->Output('320.pdf');
  #11 (permalink)  
Antiguo 12/08/2012, 19:31
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: crear pdf

Te dejo este mini ejemplo de un listado de personas:

Código PHP:
Ver original
  1. <?php
  2. require('fpdf.php');
  3. $pdf = new FPDF();
  4. $pdf->AddPage();
  5. $pdf->SetFont('Arial','B',10);
  6.  
  7. $c = mysql_connect('localhost', 'root', '12345');
  8. $sql = 'select * from personas';
  9. $res = mysql_query($sql) or die('Error: ' . mysql_error());
  10.  
  11. while ($reg = mysql_fetch_array($res)) {
  12.     $pdf->Cell(200,10,$reg['nombre']);
  13.     $pdf->Ln(5);
  14. }
  15.  
  16. $pdf->Output();
para personalizar más tu PDF revisa todos los ejemplos de la página oficial.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: mysql, pdf, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:12.