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($img, 0, 0, 0); $branco = ImageColorAllocate($img, 255, 255, 255); /* Crea el rectángulo principal donde se aplica la imagen. */ ImageFilledRectangle($img, 0, 0, $lw*95+430, $hi+30, $branco); # La apertura del código de barras. ImageFilledRectangle($img, 1,5,1,65,$preto); ImageFilledRectangle($img, 2,5,2,65,$branco); ImageFilledRectangle($img, 3,5,3,65,$preto); ImageFilledRectangle($img, 4,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_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, '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($html, true, 0, true, 0); // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 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] |