Foros del Web » Programando para Internet » PHP »

Libreria FPDF, Que la Salida me guarde el archivo.

Estas en el tema de Libreria FPDF, Que la Salida me guarde el archivo. en el foro de PHP en Foros del Web. Hice lo siguiente... Un formulario me carga un archivo xml en una carpeta, este mismo archivo lo tomo con php y lo cargo a un ...
  #1 (permalink)  
Antiguo 22/04/2009, 15:24
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 2 meses
Puntos: 2
Exclamación Libreria FPDF, Que la Salida me guarde el archivo.

Hice lo siguiente...

Un formulario me carga un archivo xml en una carpeta, este mismo archivo lo tomo con php y lo cargo a un funcion que arme para que el xml me sirva de contenido del PDF.

Con la Libreria FPDF creo el archivo sin problemas, y genero el PDF, el tema es que me lo abre obviamente.

Quisiera saber si alguien me da una mano, para ver como guardar el archivo que me genera la libreria en una carpeta de mi servidor (ojo, no es para que me lo descargue el usuario, si no para que se guarde en el servidor).

El siguiente es el codigo de lo que arme, para generar el PDF

productos1.php
Código PHP:
<?php
function leer_XML($nombre_archivo){
require(
'fpdf/fpdf.php');

class 
PDF extends FPDF
{
    
//Cabecera de página
    
function Header()
    {
        
//Logo
        
$this->Image('Header.jpg',0,0,220);
        
//Salto de línea
        
$this->Ln(22);
    }
    
    
//Pie de página
    
function Footer()
    {
        
//Posición: a 1,5 cm del final
        
$this->SetY(-15);
        
//Arial italic 8
        
$this->SetFont('Arial','I',8);
        
//Número de página
        
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    }
}

        
$archivo_XML file_get_contents ($nombre_archivo);
        if (empty(
$archivo_XML))
        die(
"No pudimos conectar");
    
        
preg_match_all("|<item>(.*)</item>|sU"$archivo_XML$items);
    
        
$listar_nodos = array();
    
        foreach (
$items[1] as $key => $item)
        {
            
preg_match("|<CDSECTOR>(.*)</CDSECTOR>|s"$item$sector);
            
preg_match("|<CDGRUPOARTICULOS>(.*)</CDGRUPOARTICULOS>|s"$item$grupo);
            
preg_match("|<VLDESCRIPCION>(.*)</VLDESCRIPCION>|s"$item$descripcion);
            
preg_match("|<AMPRECIOPLU>(.*)</AMPRECIOPLU>|s"$item$precio);
    
            
$listar_nodos[$key]['sector'] = $sector[1];
            
$listar_nodos[$key]['grupo'] = $grupo[1];
            
$listar_nodos[$key]['descripcion'] = $descripcion[1];
            
$listar_nodos[$key]['precio'] = $precio[1];
        
        }

$pdf=new PDF();

$pdf->AliasNbPages();
    
//Altura
    
$y_axis_initial 30;
    
$pdf->AddPage();
    
$pdf->SetFillColor(150,150,150);
    
$pdf->SetFont('Arial','B',12);
    
$pdf->SetY($y_axis_initial);
    
$pdf->SetX(10);
    
$pdf->Cell(15,6,'Sector',1,0,'C',1);
    
$pdf->Cell(30,6,'Grupo',1,0,'C',1);
    
$pdf->Cell(100,6,'Descripcion',1,0,'C',1);
    
$pdf->Cell(20,6,'Precio',1,0,'C',1);


$num 0;
$max 39;
$altura_linea 37;
$numRow 1;
for (
$e 0$e 200$e++)
{
if(
$numRow == 1){
$colorRow "232";
$numRow 2;
}else{
$colorRow "192";
$numRow 1;
}
   
    
$sector $listar_nodos[$e]['sector'];
    
$grupo $listar_nodos[$e]['grupo'];
    
$descripion $listar_nodos[$e]['descripcion'];
    
$precio $listar_nodos[$e]['precio'];
    
    if(
$num == $max){
            
$pdf->AddPage();
            
$pdf->SetFillColor(150,150,150);
            
$pdf->SetFont('Arial','B',12);
            
$pdf->SetY($y_axis_initial);
            
$pdf->SetX(10);
            
$pdf->Cell(15,6,'Sector',1,0,'C',1);
            
$pdf->Cell(30,6,'Grupo',1,0,'C',1);
            
$pdf->Cell(100,6,'Descripcion',1,0,'C',1);
            
$pdf->Cell(20,6,'Precio',1,0,'C',1);
            
$altura_linea $y_axis_initial 6;
            
$num 0;
        }
    
$pdf->SetFillColor($colorRow,$colorRow,$colorRow);
    
$pdf->SetY($altura_linea);
    
$pdf->SetX(10);
    
$pdf->Cell(15,6,$sector,1,0,'L',1);
    
$pdf->Cell(30,6,$grupo,1,0,'L',1);
    
$pdf->Cell(100,6,$descripion,1,0,'L',1);
    
$pdf->Cell(20,6,$precio,1,0,'L',1);
    
$altura_linea $altura_linea 6;
    
$num $num 1;

}

$pdf->Output();
}
?>

El siguiente es donde cargo el XML y se debe crear tanto el xml guardarse en una carpeta (que eso ya funciona perfecto) y el PDF que se guarde tambien en una carpeta que es lo que faltaria hacer...


cargar_producto.php
Código PHP:
<?
if(isset($_POST["cargar"])){
$destino 'xml' ;
// Leemos el tamaño del fichero
$tipo $_FILES 'archivo' ][ 'type' ];

$fecha time();
$fecha date("d-m-y-i-s",$fecha);
    if(
$tipo == "text/xml"){
        
move_uploaded_file $_FILES 'archivo' ][ 'tmp_name' ], $destino '/catalogo'.$fecha.'.xml');
        
        require(
"productos1.php");
        
        
$archivo 'catalogo.pdf';
        
$fp fopen($archivo"a");
        
$string leer_XML($destino."/catalogo".$fecha.".xml");
        
$write fputs($fp$string);
        
fclose($fp);
        
    }
    else{
        echo 
"Archivo incorrecto: Debe cargar un archivo de tipo XML";
    }
}
else{
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cargar Producto</title>
</head>
<body>
<div>Por favor ingrese su archivo XML para generar el documento en PDF</div>
<div>
  <form action="cargar_producto.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
    Busque el Archivo:
    <label>
    <input type="file" name="archivo" id="archivo" />
    </label>
    <p>
      <label>
      <input type="submit" name="cargar" id="cargar" value="Cargar Archivo" />
      </label>
    </p>
  </form>
</div>
</body>
</html>
  #2 (permalink)  
Antiguo 22/04/2009, 15:30
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Libreria FPDF, Que la Salida me guarde el archivo.

Esto es asi:
Código PHP:
$pdf->Output("ruta/archivo.pdf","F"); 
Con F le indicas que guarde el fichero localmente.

FPDF
  #3 (permalink)  
Antiguo 22/04/2009, 15:33
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Libreria FPDF, Que la Salida me guarde el archivo.

FPDF Output manual, basicamente

$pdf->Output('ruta/archivo.pdf', 'F');

Edito: Para no perder la costumbre... llegue tarde
__________________
- León, Guanajuato
- GV-Foto
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 05:15.