Foros del Web » Programando para Internet » PHP »

Problema con pdf en PHP

Estas en el tema de Problema con pdf en PHP en el foro de PHP en Foros del Web. Bien día a todos… El problema que tengo es el siguiente tengo que hacer un código de barras (EAN-128) y añadirlo a un archivo en ...
  #1 (permalink)  
Antiguo 26/04/2011, 15:24
 
Fecha de Ingreso: enero-2010
Mensajes: 20
Antigüedad: 14 años, 3 meses
Puntos: 0
Problema con pdf en PHP

Bien día a todos…

El problema que tengo es el siguiente tengo que hacer un código de barras (EAN-128) y añadirlo a un archivo en pdf.


Para generar el pdf estoy usando el código sugerido por GeoAvila

[URL="http://www.forosdelweb.com/f18/generar-codigo-barras-desde-php-219142/"]http://www.forosdelweb.com/f18/generar-codigo-barras-desde-php-219142/[/URL]

Y para generar el pdf uso el siguiente código

Código PHP:
<?php

require_once('tcpdf/config/lang/eng.php');
require_once(
'tcpdf/tcpdf.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATIONPDF_UNITPDF_PAGE_FORMATtrue'UTF-8'false);


// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
//$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);


//set auto page breaks
//$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// set font
$pdf->SetFont('helvetica'''10);


$pdf->AddPage('P''LEGAL');

$html .= '<h1>codigo de barras--></h1><br/>';
$html .= '<p><img src="barraean128.php"/></p>';

// output the HTML content
$pdf->writeHTML($htmltrue0true0);

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// reset pointer to the last page
//$pdf->lastPage();

// ---------------------------------------------------------

//Close and output PDF document
$pdf->Output('prueba.pdf''I');

//============================================================+
// END OF FILE
//============================================================+
?>

Pero al ejecutarlo no me muestra nada, no sé en qué me estoy equivocando o como podría hacer este proceso de otra forma
  #2 (permalink)  
Antiguo 26/04/2011, 15:35
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con pdf en PHP

Verifica que la imagen esta correctamente declarada, es decir la ruta es correcta.
Si la librería que usas para generar el pdf lo requiere, es posible que tengas que configurar que acepte imágenes remotas e indicar la ruta completa (http://rutaimagen....) además verificar que la librería acepta imágenes en el formato que manejas.

Yo uso normalmente dompdf para pasar de html a pdf por que manejo tablas dinámicas y complejas, es una opción que puedes manejar.

Pero si sólo lo necesitas para poner la imagen del codigo de barras, también podrías usar fpdf, es algo más laborioso pero tendrías mayor control.
  #3 (permalink)  
Antiguo 29/04/2011, 10:00
 
Fecha de Ingreso: enero-2010
Mensajes: 20
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema con pdf en PHP

Bueno la solucion a mi problema la realize de la siguiente manera

use tcpdf para crear el pdf es un derivado de tpdf lo pueden descargar en el siguiente link

[URL="http://sourceforge.net/projects/tcpdf/files/"]http://sourceforge.net/projects/tcpdf/files/[/URL]

La imagen EAN-128 la cree usando GD con el siguiente codigo:

Código PHP:
<?php 

/* 
Generación de código de barras estándar p/ boletos bancários brasileiros. 
Autor: MARCOLINO, Alexandre de Jesus ( [noparse][email][email protected][/email][/noparse] ) 
Este código puede ser usado y copiado libremente desde que site o comunique al autor por email.  
Testado sobre Internet Explorer 6 y en Netscape 7. 
*/ 



function montacodigodebarras($valor) { 
 
$lw 1$hi 50
/* La lógica se aplica a continuación en la tabla anterior para el tabcodbarra variable {} */ 

 
$tabcodbarra[0] = "00110"
 
$tabcodbarra[1] = "10001"
 
$tabcodbarra[2] = "01001"
 
$tabcodbarra[3] = "11000"
 
$tabcodbarra[4] = "00101"
 
$tabcodbarra[5] = "10100"
 
$tabcodbarra[6] = "01100"
 
$tabcodbarra[7] = "00011"
 
$tabcodbarra[8] = "10010"
 
$tabcodbarra[9] = "01010"
 for(
$f1=9;$f1>=0;$f1--){  
  for(
$f2=9;$f2>=0;$f2--){  
   
$f = ($f1 10) + $f2
   
$texto ""
   for(
$i=1;$i<6;$i++){  
    
$texto .= substr($tabcodbarra[$f1],($i-1),1) . substr($tabcodbarra[$f2],($i-1),1); 
   } 
   
$tabcodbarra[$f] = $texto
  } 
 } 

    
/* Generando la Imagen del Código de Barras */ 

/* Genera la base para completar el código.  
$img  -> código de la imagen 
$branco -> blanco 
$preto -> negro
*/ 
   
$img ImageCreate($lw*95+430,$hi+30); 
    
   
$preto ImageColorAllocate($img000); 
   
$branco ImageColorAllocate($img255255255); 

/* Crea el rectángulo principal donde se aplica la imagen. */       
    
   
ImageFilledRectangle($img00$lw*95+430$hi+30$branco); 
    
# La apertura del código de barras. 
   
ImageFilledRectangle($img1,5,1,65,$preto); 
   
ImageFilledRectangle($img2,5,2,65,$branco); 
   
ImageFilledRectangle($img3,5,3,65,$preto); 
   
ImageFilledRectangle($img4,5,4,65,$branco); 

# Aquí comienza el barrido del valor enviado para preparar el código de barras.

$fino 1
$largo 3// el tamaño ideal sería de 3
$pos  5
$texto $valor
if((
strlen($texto) % 2) <> 0){ 
  
$texto "0" $texto


// dibujar datos 
while (strlen($texto) > 0) { 
 
$i round(esquerda($texto,2)); 
 
$texto direita($texto,strlen($texto)-2); 
  
 
$f $tabcodbarra[$i]; 
  
 for(
$i=1;$i<11;$i+=2){ 
  if (
substr($f,($i-1),1) == "0") { 
   
$f1 $fino
  }else{ 
   
$f1 $largo
  } 

/* Impresión de una barra de color negro*/   
 
ImageFilledRectangle($img$pos,5,$pos-1+$f1,65,$preto) ; 
 
$pos $pos $f1;  
/* Fin de la barra de impresión negro */   
  
 
if (substr($f,$i,1) == "0") { 
   
$f2 $fino
  }else{ 
   
$f2 $largo
  } 

/* Impresión de una barra blanca */ 
 
ImageFilledRectangle($img$pos,5,$pos-1+$f2,65,$branco) ; 
 
$pos $pos $f2;  
/* Después de la impresión de la barra blanca */   

 



# clausura del codigo de barras

ImageFilledRectangle($img$pos,5,$pos-1+$largo,65,$preto); 
$pos=$pos+$largo

ImageFilledRectangle($img$pos,5,$pos-1+$fino,65,$branco); 
$pos=$pos+$fino


ImageFilledRectangle($img$pos,5,$pos-1+$fino,65,$preto); 
$pos=$pos+$fino

    
/* guarda la imagen en la carpeta del php puedes poner la ruta ejemplo upload/nombre_imagen*/ 
   
header("Content-Type: image/png"); 
   
ImagePNG($img,'nombre_imagen.png'); 





function 
esquerda($entra,$comp){ 
  return 
substr($entra,0,$comp); 


function 
direita($entra,$comp){ 
  return 
substr($entra,strlen($entra)-$comp,$comp); 


?>

y el codigo para poner la imagen en el pdf es el siguiente
Código PHP:
<?php
require_once('tcpdf/config/lang/eng.php');
require_once(
'tcpdf/tcpdf.php');
include(
'barraean128.php');


// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATIONPDF_UNITPDF_PAGE_FORMATtrue'UTF-8'false);


// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
//$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);


//set auto page breaks
//$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// set font
$pdf->SetFont('helvetica'''10);


$pdf->AddPage('P''LEGAL');
montacodigodebarras("0123456789");

$html .= '<p><img src="nombre_imagen.png" /></p>';
//echo $html;
$pdf->writeHTML($htmltrue0true0);

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

// reset pointer to the last page
//$pdf->lastPage();

// ---------------------------------------------------------

//Close and output PDF document
$pdf->Output('prueba.pdf''I');

//============================================================+
// END OF FILE
//============================================================+
?>
Gracias a:
ocp001a

fuentes:
[URL="http://www.php.net/"]http://www.php.net/[/URL]
[URL="http://www.forosdelweb.com/f18/generar-codigo-barras-desde-php-219142/"]http://www.forosdelweb.com/f18/generar-codigo-barras-desde-php-219142/[/URL]

Etiquetas: codigobarras, ean-128, pdf
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 15:34.