Generar PDF con PHP

Este artículo ya se encuentra obsoleto.
Para una referencia actual leer: Generar archivos PDF con PHP

PHP entre sus características primarias tiene la capacidad de generar archivos PDF, tiene funciones especificas para personalizar y crear estos archivos pero son muy dificiles de utilizar, para ello existe una clase llamada R&OS: pdf class el cual provee métodos muy potentes y simplificados para la creación de archivos PDF.

ros_pdf_class.png

Descarga
Puedes descargar los archivos de manera gratuita en pdfClassesAndFonts_009e.zip. La documentación la puedes encontrar en readme.pdf.

Primeros Pasos
En la distribución de esta clase vienen incluido dos archivos: class.ezpdf.php y class.pdf.php los cuales contienen todas las propiedades y métodos necesarios para crear documentos PDF, además de ello hay una carpeta llamada fonts en el cual vienen algunas fuentes que podemos utilizar en la generación de pdfs.

Luego para crear un archivo pdf el primer paso es incluir las clases con la siguiente linea.

include ('class.ezpdf.php');

El siguiente paso es crear una instancia de la clase Cezpdf con la cual manejaremos la creación de pdf. Entonces creamos un archivo llamado pdf01.php donde crearemos nuestro primer documento pdf.

selectFont('fonts/Helvetica.afm');
$pdf->ezText('Mi primer pdf en PHP', 30);
$pdf->ezStream();
?>

Hemos empleado los métodos: selectFont para seleccionar la fuente con la que escribiremos los textos, ezText que permite agregar un texto con su respectivo tamaño de fuente y finalmente generamos el archivo con la función ezStream.

Opciones Avanzadas
Una de la opciones que tiene es la de incluir los datos del creador o autor en el archivo, esto lo podemos hacer pasando un array con los datos del creador a la función addInfo para ello creamos el archivo pdf02.php.

include('class.ezpdf.php');
$pdf =& new Cezpdf('a4');
$pdf->selectFont('fonts/courier.afm');
$datacreator = array (
					'Title'=>'Ejemplo PDF',
					'Author'=>'unijimpe',
					'Subject'=>'Ejemplo de PDF',
					'Creator'=>'unijimpe@hotmail.com',
					'Producer'=>'http://blog.unijimpe.net'
					);
$pdf->addInfo($datacreator);
$pdf->ezText("Ejemplo de PDF en PHP\n",20);
$pdf->ezText("Esta es una prueba de pdf\n",12);
$pdf->ezText("\n\n\n",10);
$pdf->ezText("Fecha: ".date("d/m/Y"),10);
$pdf->ezText("Hora: ".date("H:i:s")."\n\n",10);
$pdf->ezStream();

Finalmente veamos la creación de una tabla, para ello emplearemos el método ezTable el cual tiene dos parámetros, un array con con los datos a mostrar y un array con los títulos de la tabla, esto lo hacemos en el archivo pdf03.php.

selectFont('fonts/courier.afm');
$datacreator = array (
					'Title'=>'Ejemplo PDF',
					'Author'=>'unijimpe',
					'Subject'=>'PDF con Tablas',
					'Creator'=>'unijimpe@hotmail.com',
					'Producer'=>'http://blog.unijimpe.net'
					);
$pdf->addInfo($datacreator);

$data[] = array('num'=>1, 'mes'=>'Enero');
$data[] = array('num'=>2, 'mes'=>'Febrero');
$data[] = array('num'=>3, 'mes'=>'Marzo');
$data[] = array('num'=>4, 'mes'=>'Abril');
$data[] = array('num'=>5, 'mes'=>'Mayo');
$data[] = array('num'=>6, 'mes'=>'Junio');
$data[] = array('num'=>7, 'mes'=>'Julio');
$data[] = array('num'=>8, 'mes'=>'Agosto');
$data[] = array('num'=>9, 'mes'=>'Septiembre');
$data[] = array('num'=>10, 'mes'=>'Octubre');
$data[] = array('num'=>11, 'mes'=>'Noviembre');
$data[] = array('num'=>12, 'mes'=>'Diciembre');

$titles = array('num'=>'Numero', 'mes'=>'Mes');

$pdf->ezText("Meses en PHP\n",16);
$pdf->ezText("Listado de Meses\n",12);
$pdf->ezTable($data,$titles,'',$options );
$pdf->ezText("\n\n\n",10);
$pdf->ezText("Fecha: ".date("d/m/Y"),10);
$pdf->ezText("Hora: ".date("H:i:s")."\n\n",10);
$pdf->ezStream();
?>

Con lo cual obtenemos el siguiente resultado en nuestro browser.

ezpdf-demo.gif

Para concluir con este tema les dejo los archivos fuente con los ejemplos que hemos desarrollado es este posta para descarga.

Comentarios Total 406 comentarios


[…] No presentare al lector lo basico sobre la clase R&OS si lo que se busca es conocer lo que se puede hacer con la clase lo podran encontrar en el siguiente enlace http://blog.unijimpe.net/generar-pdf-con-php/… […]

Carlos Eduardo Muñoz Cruz
Publicado: 25/08/2011 12:24 am

Aqui les dejo si me lo permiten un pequeño POST en mi blog en el cual hago un pequeño truco para poder imprimir varias lineas en una tabla ezTable… Desgraciadamente funciona cuando la tabla no necesita imprimirse con bordes … pero con un poco de ciencia podria funcionar para imprimir tablas con bordes…

El enlace es el siguiente…

a href=»http://www.carlosemunoz.com.mx/?p=141&preview=true»>http://www.carlosemunoz.com.mx/?p=141&preview=true

Eduardo
Publicado: 25/08/2011 3:15 pm

Para solucionar los saltos de linea «\n» y la tabla vacia, como ya lo mencionaron, hay que ubicar bien la carpeta «fonts», por ejemplo yo coloque mis archivos en la carpeta «php» y puse la siguiente linea:

$pdf->selectFont(‘./php/fonts/Helvetica.afm’);

Es importante colocar el punto «./»

wilson delgado
Publicado: 29/08/2011 3:52 pm

excelente, gracias porel aporte y la dedicación en respondernos.

Hecktor
Publicado: 05/09/2011 12:23 am

Hola, estoi trabajando en un proyecto en php y mysql y esta clase me encanta muy facil de usar, todo iba de maravilla hasta cke lo subi al hosting empezaron los problemas mi pdf aparece todo desfasado parece cke no da los saltos de linea, aparece todo encimado ya probe poniendo las soluciones que pusieron aqui pero nada no funcionan, espero me puedan ayudar es super urgente
les dejo mi codigo:
selectFont(‘./pdf/fonts/courier.afm’);
$pdf->ezSetCmMargins(1,1,1.5,1.5);
require_once(‘Connections/consultorio.php’);
$consulta1=mysql_query(«select * from paciente where id_paciente=». $_REQUEST[«paciente»] .»;»);
$fila_consulta=mysql_fetch_array($consulta1);
$queEmp=»select con.fecha,ca.temperatura,ca.sintomatologia,ca.diagnostico,con.receta from consulta con
inner join caracteristicas_paciente ca
on ca.id_paciente=». $_REQUEST[«paciente»] .» and con.id_paciente=». $_REQUEST[«paciente»] .» and ca.id_paciente=con.id_paciente and ca.fecha_carac=con.fecha
group by ca.sintomatologia,ca.diagnostico,ca.fecha_carac,con.fecha
order by con.fecha desc;»;
$resEmp = mysql_query($queEmp) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
$ixx = 0;
while($datatmp = mysql_fetch_assoc($resEmp)) {
$ixx = $ixx+1;
$data[] = array_merge($datatmp, array(‘num’=>$ixx));
}
$consultas = array(
‘fecha’=>’Fecha‘,
‘temperatura’=>’Temp.‘,
‘diagnostico’=>’Diagnostico‘,
‘receta’=>’Receta‘,

);
$options = array(
‘shadeCol’=>array(0.9,0.9,0.9),
‘xOrientation’=>’center’,
‘width’=>500
);
$options2 = array(
//’shadeCol’=>array(0.9,0.9,0.9),
‘justification’=>’center’,
//’width’=>500
);
$options3 = array(
//’shadeCol’=>array(0.9,0.9,0.9),
‘justification’=>’right’,
//’width’=>500
);
$queEmp2=»select ca.fecha_carac,ca.edad,cre.ideal_peso,ca.peso,ca.talla,cre.ideal_talla,ca.imc from crecimiento cre
inner join caracteristicas_paciente ca
on id_paciente=». $_REQUEST[«paciente»] .» and cre.edad=ca.edad and ca.sexo=cre.sexo order by ca.fecha_carac desc;»;
$resEmp2 = mysql_query($queEmp2) or die(mysql_error());
$totEmp2 = mysql_num_rows($resEmp2);
$ixx = 0;
while($datatmp2 = mysql_fetch_assoc($resEmp2)) {
$ixx = $ixx+1;
$data2[] = array_merge($datatmp2, array(‘num’=>$ixx));
}
$crecimiento = array(
‘fecha_carac’=>’Fecha‘,
‘edad’=>’Edad‘,
‘peso’=>’Peso Kg.‘,
‘ideal_peso’=>’Peso Ideal Kg.‘,
‘talla’=>’Talla cm.‘,
‘ideal_talla’=>’Talla Ideal cm.‘,

);

$queEmp3=»select * from estudios where id_paciente=». $_REQUEST[«paciente»] .»;»;
$resEmp3 = mysql_query($queEmp3) or die(mysql_error());
$totEmp3 = mysql_num_rows($resEmp3);
$ixx = 0;
while($datatmp3 = mysql_fetch_assoc($resEmp3)) {
$ixx = $ixx+1;
$data3[] = array_merge($datatmp3, array(‘num’=>$ixx));
}
$estudios = array(
‘nom_estudio’=>’Estudio‘,
‘res_estudio’=>’Resultado‘,
‘tra_estudio’=>’Tratamiento‘,
);
$queEmp4=»select * from enfermedad_hereditaria where id_paciente=». $_REQUEST[«paciente»] .»;»;
$resEmp4 = mysql_query($queEmp4) or die(mysql_error());
$totEmp4 = mysql_num_rows($resEmp4);
$ixx = 0;
while($datatmp4 = mysql_fetch_assoc($resEmp4)) {
$ixx = $ixx+1;
$data4[] = array_merge($datatmp4, array(‘num’=>$ixx));
}
$enfermedades = array(
‘nom_enfermedad’=>’Enfermedad‘,
‘familiar’=>’Familiar‘,
);
$txttit = «HISTORIAL CLINICO PEDIATRICO\n»;
$txtnombre=$fila_consulta[«nombre»];
$txtapellidop=$fila_consulta[«apellido_p»];
$txtapellidom=$fila_consulta[«apellido_m»];
$pdf->ezText(«Fecha: «.date(«d/m/Y»), 10,$options3);
$pdf->ezText(«Hora: «.date(«H:i:s»).»\n\n», 10,$options3);
$pdf->ezText(«Dra. Ana Beatriz Rosas Sumano\nCed. Prof. 575391\nReg. S.S.A 74752\nM. Bravo 113 Col. Centro Oaxaca de Juarez Oax. C.P 68000\nTel. 51-6-39-84«);
$pdf->ezText($txttit,20,$options2);
$pdf->ezText(«\n\n\n»,3);
$pdf->ezText(«Paciente: $txtnombre $txtapellidop $txtapellidom«,13);
$pdf->ezText(«\n\n\n»,3);
$pdf->ezText(«Historial Consultas«,15);
$pdf->ezText(«\n\n\n», 1);
$pdf->ezTable($data, $consultas, », $options);
$pdf->ezText(«\n\n\n»,5);
$pdf->ezText(«Historial Crecimiento«,15);
$pdf->ezText(«\n\n\n», 1);
$pdf->ezTable($data2, $crecimiento, », $options);
$pdf->ezText(«\n\n\n»,5);
$pdf->ezText(«Historial Estudios«,15);
$pdf->ezText(«\n\n\n», 1);
$pdf->ezTable($data3, $estudios, », $options);
$pdf->ezText(«\n\n\n»,5);
$pdf->ezText(«Enfermedades Hereditarias«,15);
$pdf->ezText(«\n\n\n», 1);
$pdf->ezTable($data4, $enfermedades, », $options);
$pdf->ezText(«\n\n\n», 10);
$pdf->ezStream();
?>
GRACIAS DE ANTEMANO

Jav
Publicado: 06/09/2011 4:47 pm

IMPORTANTISISISISISISMO

A todos los que les sale este error!!
Warning: Cannot modify header information – headers already sent by (output started at c:\archivos de programa\easyphp1-8\www\pdfclassphp\index.php:8) in c:\archivos de programa\easyphp1-8\www\pdfclassphp\class.pdf.php on line 1916
Warning: Cannot modify header information – headers already sent by (output started at c:\archivos de programa\easyphp1-8\www\pdfclassphp\index.php:8) in c:\archivos de programa\easyphp1-8\www\pdfclassphp\class.pdf.php on line 1917
Warning: Cannot modify header information – headers already sent by (output started at c:\archivos de programa\easyphp1-8\www\pdfclassphp\index.php:8) in c:\archivos de programa\easyphp1-8\www\pdfclassphp\class.pdf.php on line 1919
%PDF-1.3 %âãÏÓ 1 0 obj > endobj 2 0 obj > endobj 3 0 obj > >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj > endobj 6 0 obj > endobj 7 0 obj > stream xœãr Q06Ð300P077×324PIQÐw3‹*„¤)(høf*eæ¦)¤¤)¤æ)xh*„d)¸†Âˆ£ endstream endobj 8 0 obj > endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000280 00000 n 0000000309 00000 n 0000000414 00000 n 0000000477 00000 n 0000000617 00000 n trailer > startxref 724 %%EOF

QUITAR LOS ESPACIOS CUANDO DECLARAN LA CLASE:
EJEMPLO:
<?php
include_once '../lib/zpdf/class.ezpdf.php';

si pueden ver no hay espacios entre la etiqueta de php y la declaración de la clase.

Ojala les sirva y puedan solucionar este problema que a mi me dio dolor de cabeza.
Saludos.

Marta
Publicado: 07/09/2011 5:25 am

Hola.
tengo un problemilla neceisto pasar los datos de un formulario a pdf pero algo hago mal…

selectFont(‘fonts/courier.afm’);
$aviso = «»;
$datacreator = array (
‘Title’=>’Generar PDF’,
‘Author’=>’Marta Torre Ajo’,
‘Subject’=>’PDF’,
‘Creator’=>’martatorreajo@gmail.com’,
‘Producer’=>’http://blog.martatorreajo.es’
);
$pdf->addInfo($datacreator);
if ($_POST[‘nombre’] != «») {

// email de destino
$email = «martatorreajo@gmail.com»;

// asunto del email
$subject = «Contacto»;

// Cuerpo del mensaje
$mensaje = «———————————- \n»;
$mensaje.= » Contacto \n»;
$mensaje.= «———————————- \n»;
$mensaje.= «…..:::::Datos Personales:::::…..\n»;
$mensaje.= «NOMBRE: «.$_POST[‘nombre’].»\n»;
$mensaje.= «DIRECCION: «.$_POST[‘dire’].»\n»;
$mensaje.= «TELEFONO: «.$_POST[‘tlf’].»\n»;
$mensaje.= «LOCALIDAD: «.$_POST[‘local’].»\n»;
$mensaje.= «PROVINCIA: «.$_POST[‘prov’].»\n»;
$mensaje.= «———————————- \n\n»;
$mensaje.= «…..:::::Otros Datos:::::…..\n»;
$mensaje.= «FECHA ENTRADA: «.$_POST[‘fechae’].»\n»;
$mensaje.= «TECNICO ASIGNADO: «.$_POST[‘tec’].»\n»;
$mensaje.= «IMPORTE: «.$_POST[‘importe’].»\n»;
$mensaje.= «———————————- \n\n»;
$mensaje.= «MODELO: «.$_POST[‘model’].»\n»;
$mensaje.= «MARCA: «.$_POST[‘marca’].»\n»;
$mensaje.= «MATRICULA: «.$_POST[‘matri’].»\n»;
$mensaje.= «———————————- \n\n»;
$mensaje.= «MODELO: «.$_POST[‘model’].»\n»;

$mensaje.= $_POST[‘mensaje’].»\n\n»;
$mensaje.= «———————————- \n»;
$mensaje.= «Enviado desde http://onubaiponline.es \n»;

// headers del email
$headers = «From: «.$_POST[‘nombre’].»\r\n»;

// Enviamos el mensaje
if (mail($email, $subject, $mensaje, $headers)) {
$aviso = «Su mensaje fue enviado.»;
} else {
$aviso = «Error de envío.»;
}
}

$pdf->ezText(«Parte de Averia\n»,16);
$pdf->ezText(«Copia Cliente»);
$pdf
$pdf->ezText(«\n\n\n»,10);
$pdf->ezStream();
?>

Enviar Datos

Elizbeht
Publicado: 08/09/2011 2:52 pm

Hola Marta mira este ejemplo es facil yo jalo de un formulario este campo para poder realizar una consulta :D
Cezpdf($p,$o);
}
function rf($info){
$tmp = $info[‘p’];
$lvl = $tmp[0];
$lbl = rawurldecode(substr($tmp,1));
$num=$this->ezNewPageNumber($this->ezGetCurrentPageNumber());
$this->reportContents[] = array($lbl,$num,$lvl );
this->addDestination(‘toc’.(count($this->reportContents)-1),’FitH’,$info[‘y’]+$info[‘height’]);
}
function dots($info){ //dibuja una línea punteada a la derecha y poner en un número de página
$tmp = $info[‘p’];
$lvl = $tmp[0];
$lbl = substr($tmp,1);
$xpos = 520;
switch($lvl){
case ‘1’:
$size=16;
$thick=1;
break;
case ‘2’:
$size=12;
$thick=0.5;
break;
}
$this->saveState();
$this->setLineStyle($thick,’round’,»,array(0,10));
$this->line($xpos,$info[‘y’],$info[‘x’]+5,$info[‘y’]);
$this->restoreState();
$this->addText($xpos+5,$info[‘y’],$size,$lbl);
}
}

$pdf = new Creport(‘a4′,’portrait’);
$pdf -> ezSetMargins(50,70,50,50);
$pdf->saveState();
$pdf->setStrokeColor(0,0,0,1);
$pdf->line(20,40,578,40);
$pdf->addText(50,34,6,’control de los servicios’);
$pdf->ezSetDy(100);
$mainFont = ‘./fonts/Times-Roman.afm’;
$codeFont = ‘./fonts/Courier.afm’;

// se seleciona el tipo de fuente
$pdf->ezSetDy(-90);
$pdf->openHere(‘Fit’);

$conexion=mysql_connect («localhost»,»root»,»2010″);
mysql_select_db(«vehiculo»,$conexion);

$error=»select servicios.Fecha, vehiculo.No, vehiculo.No_Economico, vehiculo.Modelo, vehiculo.Marca, vehiculo.Placas, servicios.Descripcion, servicios.Importe, servicios.IVA, vehiculo.N FROM servicios, vehiculo where vehiculo.Placas=’$Pla’ and vehiculo.No=servicios.No «; //Aqui utilizo el compo para realizar la consulta

$ver1 = mysql_query($error, $conexion) or die(mysql_error());
$consul = mysql_num_rows($ver1);

$ixx=0;
while($datatmp =mysql_fetch_assoc($ver1)) {
$ixx = $ixx+1;
$data[]= array_merge($datatmp,array(‘N’ => $ixx));
}
$titles =array(
‘Fecha’=>’Fecha‘,
‘No’=>’No‘,
‘No_Economico’=>’ Numero Economico ‘,
‘Modelo’=>’ Modelo ‘,
‘Marca’=>’ Marca ‘,
‘Descripcion’=>’Descripcion ‘ ,
);

$options=array(
‘shadeCol’=> array(0.9,0.9,0.9),
‘xOrientation’=>’center’,
‘width’=>500
);

$txttit = » ORGANISMO DE CUENCA PENINSULA DE BAJA CALIFORNIA \n»;

$pdf->ezText($txttit, 13, array(‘justification’=>’center’));
$pdf->ezText($texto, 12, array(‘justification’=>’Lefth’));
$pdf->ezTable($data, $titles, », $options); //imprime la consulta
$pdf->ezStartPageNumbers(500,28,10,»,»,»);
$size=12;
$height = $pdf->getFontHeight($size);//
$textOptions = array(‘justification’=>’full’);
$collecting=0;
$code=»;
//$pdf->ezText(«
Fecha: «.date(«d/m/Y»),12);
$pdf->ezText(«\n \nBuscar Otro Vehiculo «,14,array(»));
$pdf->ezStream();
?>

// esto es el codigo espero que te sirva yo asi jale los datos del formulario cuando le daba enviar :) Saludos

Elizbeht
Publicado: 08/09/2011 2:55 pm

esto falto no se porque razon no se pegaria pero esto va antes de todo
<?php
$Pla=$_POST["placas"]; //es el campo que se jala del formulario para hacer la consulta
error_reporting(E_ALL);
set_time_limit(1800);

include 'class.ezpdf.php';
class Creport extends Cezpdf {
var $reportContents = array();

function

elvis
Publicado: 13/09/2011 9:14 am

La respuesta de como hacer que el titulo a paresca en el centro


$pdf->ezText("Texto que deceas mostrar\n",15,array('justification'=>'center'));

Espero que les sirva tanto como a mi n_n

Claudia
Publicado: 19/09/2011 11:19 am

Tengo un problema al generar el pdf, el texto que tiene acentos no se justifica, los acentos si se ven, el texto sin acentos si se justifica, el problema es justificar solo los parrafos con acentos..he intentado de todo y no puedo solucionarlo alguien tiene alguna sugerencia? es urgente.

steffani
Publicado: 28/09/2011 10:43 am

hola! estoy trabajando en debian y al crear el pdf con esta libreria no me aparecen ningun tipo de texto, hasta dibuja la tablas pero no aparece el texto, que puedo hacer en este caso

yormary
Publicado: 06/10/2011 9:05 am

hola muy bueno toda la informacion que contiene este foro.. Tengo una duda. les voy a explicar mas o menos como es el sistema que tengo, es un sistema de registro de suplencia (eventuales) quisiera que cuando el vaya a imprimir imprima un texto predeterminado osea como el contrato y que en un lugar especifico del contrato me imprima ejemplo: mediante la presente, cumplimos en informarle que la sra. ANA ROJAS cedula de indentidad 8.384.765 las letras en mayusculas es el registro de ese eventual.
Necesito su ayuda por favor.

hilde
Publicado: 07/10/2011 2:34 pm

hola buenas tarde estoy ejecutando el ejemplo numero 1

selectFont(‘fonts/Helvetica.afm’);
$pdf->ezText(‘Mi primer pdf en PHP’, 30);
$pdf->ezStream();
?>

pero me da este error al tratar de abrirlo

Warning: include(/opt/lampp/htdocs/class.ezpdf.php) [function.include]: failed to open stream: Permission denied in /opt/lampp/htdocs/pas.php on line 2

Warning: include() [function.include]: Failed opening ‘class.ezpdf.php’ for inclusion (include_path=’.:/opt/lampp/lib/php’) in /opt/lampp/htdocs/pas.php on line 2

Fatal error: Class ‘Cezpdf’ not found in /opt/lampp/htdocs/pas.php on line 3

tengo las dos clases y la carpeta fonts le doy las garcias antemanos

yeid
Publicado: 25/10/2011 5:23 pm

hola yormary… respecto a lo que pides yo ya pasé por ahi,,, adjunto codigo…

este crea un pdf prestablecido y recibe unas variables que antes se han llenado..


<?php

session_start();

error_reporting(E_DEPRECATED);
error_reporting(E_ERROR);

$usuari= $_SESSION['usuari'];

while (($_SESSION['usuari']=='')or ($_SESSION['usuari']=='DESCONOCIDO'))
{ /*
echo "alert(' \b Usted no puede ver esta p\xe1gina. Antes debe loguearse. \b ! ')";
echo "window.location.href=('index.php')";*/
}
include ('carta_unavez.php');
$usuario = $_SESSION['usuari'];

$conn = conectar();
if(validar($usuario,$conn))
{
odbc_close($conn);

die("
Sistema de gestión - Earthborn | Autenticación de usuarios | Departamento de sistemas | SERVICRÉDITO S.A:::
Copyright © 2011 . Todos los derechos reservados.
ir a Inicio
volver a Intarnet Corporativa

");

}else
{
include ('maximo.php');
$conn = conectarmax();
$Codigo_consecutivo = obtenerConsecutivo($conn);
odbc_close($conn);
}

/*if (($_POST['txtMotivo']=='')or ($_POST['txtEmpresa']==''))
{
echo "alert(' \b Usted no puede ver esta p\xe1gina. \b ! Antes debe llenar los datos del formulario CartaLaboral ')";
echo "window.location.href=('CartaLaboral.php')";
}*/

/*
while (($_POST['txtMotivo']=='')or ($_POST['txtCiudad']=='-')or ($_POST['txtEmpresa']==''))
{
echo "alert(' \b Usted no puede ver esta p\xe1gina. \b ! Antes debe llenar los datos del formulario CartaLaboral ')";
echo "window.location.href=('CartaLaboral.php')";
}

*/

include_once('class.ezpdf.php');
require_once('conexion.php');
require_once ('consultasql.php');

$textomotivo=$_POST["txtMotivo"];
$textoempresa=$_POST["txtEmpresa"];
$textociudad=$_POST["txtCiudad"];
$pdf = new Cezpdf('Carta');

$pdf->selectFont('fonts/Helvetica.afm',array('Column1'=> array('justification'=>'center','width'=>200)));
$pdf->setEncryption('','',array('print'));

//$pdf->setEncryption(); //no me deja copiar, pegar, ni tampoco IMPRIMIR

$pdf->ezSetCmMargins(3,3,3,3);

setlocale(LC_TIME, 'Spanish');
$pdf->ezText(strftime("\nMedellín, %d de %B de %Y \n\n\n"));
//$pdf->ezText("\n\n Medellín, ".date("d F Y\n\n\n\n"),10);

$pdf->ezText("Señores,",12);
$pdf->ezText("$textoempresa",12);
$pdf->ezText("$textociudad\n\n",12);
$pdf->ezText("Asunto: Certificado laboral\n\n",12);

$pdf->ezText("MiEmpresaS.A. identificado con Nit. 800000000, certifica la información que se detalla a continuación:\n",12);

//{
$pdf->ezText("\t\t\t\t\t\tNombre empleado:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$resultnombre",12);
$pdf->ezText("\t\t\t\t\t\tDocumento de identificación:\t\t\t\t\t\t\t$resultid",12);
$pdf->ezText("\t\t\t\t\t\tCargo:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$resultcargo",12);
$pdf->ezText("\t\t\t\t\t\tTipo de contrato:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$resultcontrato",12);
$pdf->ezText("\t\t\t\t\t\tFecha de ingreso:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$resultfecha",12);
$pdf->ezText("\t\t\t\t\t\tSalario Mensual:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t $ $resultsalari\n\n",12);
if ($Saldo== 0)
{
$pdf->ezText("En el momento el empleado no presenta endeudamiento con la empresa. ",12);
$pdf->ezText(" ",10);
}
else
{
$pdf->ezText("En el momento el empleado presenta endeudamiento con la empresa por valor de $ $deuda \n ",12);
}

$pdf->ezText("Se expide esta certificación laboral a solicitud del empleado, para $textomotivo.\n",12);
$pdf->ezText("Estaremos a su disposición para verificar la anterior información, en el 4446373 Opción 1 Ext. 125\n\n",12);
$pdf->ezText("\nCordialmente,\n\n",12);

$pdf->ezText("\n\n\n\n\n\dorotea Facunda",12);
$pdf->ezText("Coordinadora Administrativa \n",12);
}

$pdf->ezText(" CÓDIGO: SVC $Codigo_consecutivo",8);

//$pdf->addJpegFromFile('logo.jpg',200,590,100); //coloca una imagen

// $pdf->ezText("Hora: ".date("H:i:s"),10); // para imprimir la hora del servidor

}

?>

ivan
Publicado: 28/10/2011 12:30 pm

estoy usando la libreria ezpdf pero me gustaria saber cual es el metodo para insetar una imagen este es el codigo que genere
selectFont(‘fonts/Helvetica.afm’);
$datacreator = array (
‘Title’=>’Acuse de Recibido’,
‘Author’=>’UAEH’,
‘Subject’=>’DGC’,
‘Creator’=>’GESTION DE LA CALIDAD’,
‘Producer’=>’http://www.uaeh.edu.mx’
);
$pdf->addinfo($datacreator);
$data[] = array(‘col1’=>’DE:’, ‘col2’=>$_POST[‘dependencia’]);

$pdf->addInfo($datacreator);

$data[] = array(‘col1’=>’DEPENDENCIA:’, ‘col2’=>$_POST[‘dependencia’]);
$data[] = array(‘col1’=>’SOLICITANTE:’, ‘col2’=> $_POST[‘nombre’]);
$data[] = array(‘col1’=>’PUESTO:’, ‘col2’=>$_POST[‘puesto’]);
$data[] = array(‘col1’=>’E-MAIL:’, ‘col2’=> $_POST[‘email’]);
$data[] = array(‘col1’=>’DOCUMENTOS:’, ‘col2’=>’VARIABLE DE FORMULARIO’);
$data[] = array(‘col1’=>’ARCHIVO:’, ‘col2’=>’VARIABLE DE FORMULARIO’);
$data[] = array(‘col1’=>’RAZON DE CAMBIO’, ‘col2’=>$_POST[‘razon’]);
$data[] = array(‘col1’=>’CAMBIO PROPUESTO’, ‘col2’=>$_POST[‘cambio’]);

$titles = array(‘col1’=>’CAMPOS‘, ‘col2’=>’DATOS USUARIO‘);

$pdf->ezText(«Universidad Autonoma del Estado de Hidalgo\n»,16,’center’);
$pdf->ezText(«Direccion de Planeacion\n»,12);
$pdf->ezText(«Direccion de Gestion de la Calidad\n»,12);
$pdf->ezText(«Acuse de Recibido\n»,12);
$pdf->ezTable($data,$titles,»,$options );
$pdf->ezText(«\n\n\n»,10);
$pdf->ezText(«Fecha: «.date(«d/m/Y»),10);
$pdf->ezText(«Hora: «.date(«H:i:s»).»\n\n»,10);
$pdf->ezStream();
?>

jok3rcit0
Publicado: 01/11/2011 1:00 pm

Hola,
Muy buen post!!
Solo tengo una consulta espero me puedas ayudar…
Como podría agregar imágenes para el Formato de mi PDF ?
Por ejemplo en vez que diga «Meses en PHP »
aparezca una Imagen!
agradezco todo el apoyo que brindas

jok3r
Publicado: 18/11/2011 5:50 pm

si, de nuevo yo! D: el problema anterior ya pude resolverlo gracias…
ahor avengo con uno nuevo u.U
se trata de que genero un pdf y así ahora lo que se muestra son cantidades ..
problema: los muestra como numeros tal cual…
si quisiera que los mostrara con formato de cantidad/moneda se puede?

Rodwyn
Publicado: 26/12/2011 6:02 pm

yo tengo un problema tan basico como:

Warning: include(ejemplos/class.ezpdf.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\ejemplos\pdf01.php on line 10

Warning: include() [function.include]: Failed opening ‘ejemplos/class.ezpdf.php’ for inclusion (include_path=’.;C:\php5\pear’) in C:\AppServ\www\ejemplos\pdf01.php on line 10

Fatal error: Class ‘Cezpdf’ not found in C:\AppServ\www\ejemplos\pdf01.php on line 11
que debo hacer????

Jhon Wilson Vanegas Benitez
Publicado: 10/01/2012 11:33 am

Tengo problemas al generar el documento pdf y me sale el siguiente error, agradezco me colaboren con esto, estoy en colombia

Deprecated: Assigning the return value of new by reference is deprecated in C:\AppServ\www\Mantenimiento\ubipdf.php on line 3

Strict Standards: date() [function.date]: It is not safe to rely on the system’s timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘America/New_York’ for ‘-5.0/no DST’ instead in C:\AppServ\www\Mantenimiento\class.pdf.php on line 689

Strict Standards: date() [function.date]: It is not safe to rely on the system’s timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘America/New_York’ for ‘-5.0/no DST’ instead in C:\AppServ\www\Mantenimiento\ubipdf.php on line 46

Strict Standards: date() [function.date]: It is not safe to rely on the system’s timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘America/New_York’ for ‘-5.0/no DST’ instead in C:\AppServ\www\Mantenimiento\ubipdf.php on line 47

Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\Mantenimiento\ubipdf.php:3) in C:\AppServ\www\Mantenimiento\class.pdf.php on line 1916

Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\Mantenimiento\ubipdf.php:3) in C:\AppServ\www\Mantenimiento\class.pdf.php on line 1917

Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\Mantenimiento\ubipdf.php:3) in C:\AppServ\www\Mantenimiento\class.pdf.php on line 1919
%PDF-1.3 %���� 1 0 obj <> endobj 2 0 obj <> endobj 3 0 obj << /Type /Pages /Kids [6 0 R 10 0 R ] /Count 2 /Resources << /ProcSet 4 0 R /Font <> >> /MediaBox [0.000 0.000 841.890 595.280] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj <> endobj 6 0 obj <> endobj 7 0 obj <> stream x���Ms�0��� ۋ�V��R���$�M�ލ-�:`5″�?�?� m�2�.{��}W�]M>DU�R�JfIQ��5’(#ņ���j9�»�w�bq���H�_dQL2T�����蛧2�HjO��s�d��ס��)Tkٕ� ��2W��ɟb’�����7U(��t�B�RVRmz�Ɵ��E�o�:�8� P�_Gc��O6����SxV��;Gm��U�N*�yˁ�.�p����|�F��mo�ކ-^���V�VM�ai��=U����r�^I��:e| �C�R�Z�Q�Ӏ� �I�_�/G�P� endstream endobj 8 0 obj <> endobj 9 0 obj <> stream x���Mo�8���<���z���"�Q[-У�V�.�����/%��L����y_��y��u3-�e4W�(chf)6��='�QF�����&�O2/n��3A�1�x�t˄����e,�d����R����82 !���e��+7�2iM%L���.��z��2��≾��ӡޓ[ȅe��W�V�md�ZQ%/R���٬YNM���]Ev%Y�����.�*���JȀ���J2X�hϰ����o��(}���a�L��CIj����y�0�<�x���3��fl��a�*@�ͼ��y�4="" ���%�����="" c����,���)�q�j����g�="" a�g�n*��}}'��z<�wҕ�c�@ߡ��� �;ԕ�;Ԕ�;�2���$�̈́���r�wq��;4ɵ��f�}���="�3" }�nf��dn)����nd�*�="" ��]̫09�!��+*�2�="��R���$�*I�W4���r�k�xE�\�5���:^�@��" ��f�xu�z�q�ww�="" ����݆b|k�wl��*^9�+�j�f�����,������#���vz�e9��pb�="" �c��3\��="+�AL�a�g&��`�1" �="" �&�ٰ�+�fj��y�l�yp6�-����߳�����l="" ���0гz6��x="" f`{6��@])6p�s�r�������9t̂?�g9.���8Е}�k�f�%�]���="" 18��p��wi�7%�m� �Ę+yb��t﷧�@~t�r�="" 3���z'�����{1��x��݄i�$dr9�do�cmq���\�._�ͥ�gjph���8pfj*�n!��="R���$R�����-z=�B���d�;�g���?�,4�\�2�!Ϙ���LW�" ��#="" x<�@�g8��,�a�3�l��8��ɨ+�f�o�%u���7���8�f�="" �{v��1�8�@�e�%a���="" ?�p�����rjsa^i7�Бkavd��r��2躁pǍh��~$t="" ��="" �ҏd�l�,���h����o��~$t*.ۺj?)3�|��fb�v��="" j?*="" �myg�ލdj��u)��pik ?(�h���n���a��h#�*c��j�͏t"5j0�4j�?����="" endstream="" endobj="" 10="" 0="" obj="" <> endobj 11 0 obj <> stream x��2�300P@&�ҹ �,�\����`b�gjd�`jf�gil�����,nj�gl endstream endobj xref 0 12 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000287 00000 n 0000000316 00000 n 0000000421 00000 n 0000000494 00000 n 0000001049 00000 n 0000001156 00000 n 0000002433 00000 n 0000002498 00000 n trailer <> startxref 2632 %%EOF

Eunice
Publicado: 12/01/2012 9:11 am

Hola! necesito una ayuda, estoy usando esta herramienta. Pero de un tiempo para el archivo que se genera no abre. Me dice que el tipo de archivo desconocido (application/octect-stream) no está permitido. Porque será eso?

Fernando
Publicado: 20/01/2012 10:18 am

Felicitaciones por toda la ayuda que nos dan a los que sabemos poco

antonio
Publicado: 31/01/2012 1:14 pm

Hola! necesito una ayuda, estoy usando esta herramienta.pero al momento de correr la aplicasion me sale el siguiente error
Warning: Cannot modify header information – headers already sent by
(output started at C:\AppServ\www\imprime\imp\documento.php:9)
in C:\AppServ\www\imprime\imp\class.pdf.php on line 1916
y la linea es esta en class.pdf es esta:
header(«Content-type: application/pdf»);

Generar PDFs en PHP | Enrique Acevedo
Publicado: 05/02/2012 3:40 am

[…] Ejemplos […]

patricio silva
Publicado: 14/02/2012 2:16 pm

genero el siguiente pdf y me aparece un error
que es el siguiente
Image($image_file, 10, 10, 15, », ‘JPG’, », ‘T’, false, 300, », false, false, 0, false, false, false); // Set font $this -> SetFont(‘helvetica’, ‘B’, 20); // Title $this -> Cell(0, 15, ‘DETALLE CHECKLIST.PDF’, 0, false, ‘C’, 0, », 0, false, ‘M’, ‘M’); } // Page footer public function Footer() { // Position at 15 mm from bottom $this -> SetY(-15); // Set font $this -> SetFont(‘helvetica’, ‘I’, 8); // Page number $this -> Cell(0, 10, ‘Page ‘.$this->getAliasNumPage().’/’.$this->getAliasNbPages(), 0, false, ‘C’, 0, », 0, false, ‘T’, ‘M’); } } // create new PDF document $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, ‘UTF-8’, false); // set document information $pdf -> SetCreator(PDF_CREATOR); $pdf -> SetAuthor(‘patricio silva’); $pdf -> SetTitle(‘TCPDF Example 003’); $pdf -> SetSubject(‘TCPDF Tutorial’); $pdf -> SetKeywords(‘TCPDF, PDF, example, test, guide’); // set default header data $pdf -> SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); // set header and footer fonts $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, », PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, », PDF_FONT_SIZE_DATA)); // set default monospaced font $pdf -> SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); //set margins $pdf -> SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf -> SetHeaderMargin(PDF_MARGIN_HEADER); $pdf -> SetFooterMargin(PDF_MARGIN_FOOTER); //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(‘times’, », 20); // add a page $pdf -> AddPage(); Cell($w, $h=0, $txt=», $border=0, $ln=0, $align=», $fill=0, $link=», $stretch=0, $ignore_min_height=false, $calign=’T’, $valign=’M’) // test Cell stretching $pdf -> cell(0, 0, ‘¿La mezcla del retorno esta realizada en el equipo HCNA?:’,$_POST[‘$mezcla’],1,’L’,0,»,0); $pdf -> Cell(0, 0, ‘¿El equipo HCNA esta instalado al inicio de la red?:’ , $_post[‘$iniciored’], 1, ‘L’, 0, », 0); $pdf -> Cell(0, 0, ‘¿La red tiene sólo cable coaxial con 90% de malla?:’, $_post[‘$cableado’], 1, ‘L’, 0, », 0); $pdf -> Cell(0, 0, ‘¿Hay Atenuadores dentro de la red HCNA (en splitter/STB)?:’,$_post[‘$atn’] , 1, ‘L’, 0, », 0); $pdf -> Cell(0, 0, ‘Conectores Cónicos en red HCNA:’, $_post[‘$conico’], 1, ‘L’, 0, », 0); $pdf -> Cell(0, 0, ‘¿Esta conectada la red HCNA a TIERRA?:’,$_post[‘$tierra’], 1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿Sólo hay Splitter GHS-xH en red HPNA?:’,$_post[‘$ghpna’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿Hay instalado un amplificador RF?:’,$_POST[‘$amp’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿El bridge HCNA tiene la version 1.9.4?:’,$_POST[‘$ftpna’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿Pin interior es XDSL?:’,$_POST[‘$pin’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿Acometida es XDSL?:’,$_POST[‘$acom’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿Tiene servicio Wi-Fi?:’,$_post[‘$wifi’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿Seleccionó canal de acuerdo a INSSIDER?:’,$_post[‘$wifi1’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’¿Adjuntó respaldo de acceso remoto al Router?:’,$_post[‘4wifi2’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’OT asociada:’,$_POST[‘$tk’],1, ‘L’, 0, », 0); $pdf -> cell(0, 0,’Tecnico que Instalo:’ ,$_post[‘$tecnico’],1, ‘L’, 0, », 0); //Close and output PDF document $pdf -> Output(‘reporte_pdf.pdf’, ‘I’); //============================================================+ // END OF FILE //============================================================+ ?>
____________________________________________________________________________-

el formulario es el siguiente

<?php
require_once('c:xampp/xampp/htdocs/checklist/instalaciones/config/lang/eng.php');
require_once('c:xampp/xampp/htdocs/checklist/instalaciones/tcpdf.php');

$indice = $_POST['interno'];
$index = $_POST['index'];
$conectar = mysql_connect("localhost","root","") or die ("No es posible realizar la conexión");
$base = mysql_select_db("radios",$conectar) or die ("No es posible abrir la base de datos");
// listo
//Envio la consulta… solo para sacar el dato del supervisor
$querysup = "SELECT `nombre` , `apellido` FROM `tecnicos` WHERE indice = '" . $indice ."';";
$qry = mysql_query($querysup);
//

for ($i=0; $i < mysql_num_rows ($qry); $i++)
{
$ress = mysql_fetch_array ($qry);
$super = "$ress[nombre] $ress[apellido]»;
}
// aqui termina la wea

//Envio la consulta… solo para sacar el dato del TECNICO
$querytec = «SELECT `codigo` FROM `tecnicos` WHERE indice = ‘» . $index .»‘;»;
$tecqry = mysql_query($querytec);
//

for ($i=0; $i < mysql_num_rows ($tecqry); $i++)
{
$tecress = mysql_fetch_array($tecqry);
$tecnico = "$tecress[codigo]»;
}
// aqui termina la wea

$mezcla = $_POST[‘mezcla’];
$mezcladet = $_POST[‘mezcladet’];
$amp = $_POST[‘amp’];
$ampdet = $_POST[‘ampdet’];

$iniciored = $_POST[‘iniciored’];
$inicioreddet = $_POST[‘inicioreddet’];
$cableado = $_POST[‘cableado’];
$cableadodet = $_POST[‘cableadodet’];
$atn = $_POST[‘atn’];
$atndet = $_POST[‘atndet’];
$tierra = $_POST[‘tierra’];
$tierradet1 = $_POST[‘tierradet1’];
$tierradet2 = $_POST[‘tierradet2’];
$conico = $_POST[‘conico’];
$conicodet = $_POST[‘conicodet’];
$ghpna = $_POST[‘ghpna’];
$ghpnadet = $_POST[‘ghpnadet’];
$fhpna = $_POST[‘fhpna’];
$fhpnadet = $_POST[‘fhpnadet’];
$pin = $_POST[‘pin’];
$pindet = $_POST[‘pindet’];
$acom = $_POST[‘acom’];
$acomdet = $_POST[‘acomdet’];
$tk = $_POST[‘tk’];
$wifi = $_POST[‘wifi’];
$wifi1 = $_POST[‘wifi1’];
$wifi1det = $_POST[‘wifi1det’];
$wifi2 = $_POST[‘wifi2’];
$wifi2det = $_POST[‘wifi2det’];

$query = mysql_query («select *from radios(¿El equipo HCNA esta instalado al inicio de la red?:,¿La red tiene sólo cable coaxial con 90% de malla?:,¿Hay Atenuadores dentro de la red HCNA (en splitter/STB)?:,Conectores Cónicos en red HCNA:,¿Esta conectada la red HCNA a TIERRA?:,¿Sólo hay Splitter GHS-xH en red HPNA?:,¿Sólo hay Splitter GHS-xH en red HPNA?:,¿El bridge HCNA tiene la versión 1.9.4?:,¿Pin interior es XDSL?:,¿Acometida es XDSL?:,¿Tiene servicio Wi-Fi?:,¿Seleccionó canal de acuerdo a INSSIDER?:,¿Adjuntó respaldo de acceso remoto al Router?:,OT asociada:,Técnico que Instaló:) values ‘$valor(‘$mezcla’,’$mezcladet’,’$iniciored’,’$inicioreddet’,’$cableado’,’$cableadodet’,’$amp’,’$ampdet’,’$atn’,’$atndet’,$tierra,’$tierradet1′,’$tierradet2′,’$conico’,’$conicodet’,’$ghpna’,’$ghpnadet’,’$fhpna’,’$fhpnadet’,’$pin’,’$pindet’,$acom’,’$acomdet’,’$wifi’,’$wifi1′,’$wifi1det’,’$wifi2′,’$wifi2det’,’$tk’,’$tecnico»)»);{
}
?>

Image($image_file, 10, 10, 15, », ‘JPG’, », ‘T’, false, 300, », false, false, 0, false, false, false);
// Set font
$this -> SetFont(‘helvetica’, ‘B’, 20);
// Title
$this -> Cell(0, 15, ‘DETALLE CHECKLIST.PDF’, 0, false, ‘C’, 0, », 0, false, ‘M’, ‘M’);
}

// Page footer
public function Footer() {
// Position at 15 mm from bottom
$this->SetY(-15);
// Set font
$this->SetFont(‘helvetica’,’I’,8);
// Page number
$this->Cell(0, 10,’Page’.$this->getAliasNumPage().’/’.$this->getAliasNbPages(),0,false,’C’,0,»,0,false,’T’,’M’);
}

// create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION,PDF_UNIT,PDF_PAGE_FORMAT,true,’UTF-8′,false);

// set document information
$pdf -> SetCreator(PDF_CREATOR);
$pdf -> SetAuthor(‘patricio silva’);
$pdf -> SetTitle(‘TCPDF Example 003’);
$pdf -> SetSubject(‘TCPDF Tutorial’);
$pdf -> SetKeywords(‘TCPDF, PDF, example, test, guide’);

// set default header data
$pdf -> SetHeaderData(PDF_HEADER_LOGO,PDF_HEADER_LOGO_WIDTH,PDF_HEADER_TITLE,PDF_HEADER_STRING);

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN,», PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA,», PDF_FONT_SIZE_DATA));

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

//set margins
$pdf -> SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf -> SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf -> SetFooterMargin(PDF_MARGIN_FOOTER);

//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(‘times’, », 20);

// add a page
$pdf -> AddPage();

Cell($w, $h=0, $txt=», $border=0, $ln=0, $align=», $fill=0, $link=», $stretch=0, $ignore_min_height=false, $calign=’T’, $valign=’M’)

// test Cell stretching
$pdf -> cell(0, 0, ‘¿La mezcla del retorno esta realizada en el equipo HCNA?:’,$_POST[‘$mezcla’],1,’L’,0,»,0);

$pdf -> Cell(0, 0, ‘¿El equipo HCNA esta instalado al inicio de la red?:’ , $_post[‘$iniciored’], 1, ‘L’, 0, », 0);

$pdf -> Cell(0, 0, ‘¿La red tiene sólo cable coaxial con 90% de malla?:’, $_post[‘$cableado’], 1, ‘L’, 0, », 0);

$pdf -> Cell(0, 0, ‘¿Hay Atenuadores dentro de la red HCNA (en splitter/STB)?:’,$_post[‘$atn’] , 1, ‘L’, 0, », 0);

$pdf -> Cell(0, 0, ‘Conectores Cónicos en red HCNA:’, $_post[‘$conico’], 1, ‘L’, 0, », 0);

$pdf -> Cell(0, 0, ‘¿Esta conectada la red HCNA a TIERRA?:’,$_post[‘$tierra’], 1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿Sólo hay Splitter GHS-xH en red HPNA?:’,$_post[‘$ghpna’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿Hay instalado un amplificador RF?:’,$_POST[‘$amp’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿El bridge HCNA tiene la version 1.9.4?:’,$_POST[‘$ftpna’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿Pin interior es XDSL?:’,$_POST[‘$pin’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿Acometida es XDSL?:’,$_POST[‘$acom’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿Tiene servicio Wi-Fi?:’,$_post[‘$wifi’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿Seleccionó canal de acuerdo a INSSIDER?:’,$_post[‘$wifi1’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’¿Adjuntó respaldo de acceso remoto al Router?:’,$_post[‘$wifi2’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’OT asociada:’,$_POST[‘$tk’],1, ‘L’, 0, », 0);

$pdf -> cell(0, 0,’Tecnico que Instalo:’ ,$_post[‘$tecnico’],1, ‘L’, 0, », 0);

//Close and output PDF document
$pdf -> Output(‘reporte_pdf.pdf’, ‘I’);

//============================================================+
// END OF FILE
//============================================================+
?>
esperando una respuestas muchas gracias

Jessica
Publicado: 02/03/2012 11:33 am

SOLUCION A ESTE PROBLEMA! RESUELTO :)

Warning: Cannot modify header information – headers already sent by (output started at c:\archivos de programa\easyphp1-8\www\pdfclassphp\index.php:8) in c:\archivos de programa\easyphp1-8\www\pdfclassphp\class.pdf.php on line 1916
Warning: Cannot modify header information – headers already sent by (output started at c:\archivos de programa\easyphp1-8\www\pdfclassphp\index.php:8) in c:\archivos de programa\easyphp1-8\www\pdfclassphp\class.pdf.php on line 1917
Warning: Cannot modify header information – headers already sent by (output started at c:\archivos de programa\easyphp1-8\www\pdfclassphp\index.php:8) in c:\archivos de programa\easyphp1-8\www\pdfclassphp\class.pdf.php on line 1919
%PDF-1.3 %âãÏÓ 1 0 obj > endobj 2 0 obj > endobj 3 0 obj > >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj > endobj 6 0 obj > endobj 7 0 obj > stream xœãr Q06Ð300P077×324PIQÐw3‹*„¤)(høf*eæ¦)¤¤)¤æ)xh*„d)¸†Âˆ£ endstream endobj 8 0 obj > endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000280 00000 n 0000000309 00000 n 0000000414 00000 n 0000000477 00000 n 0000000617 00000 n trailer > startxref 724 %%EOF
_________________________________________

Lo unico que hay que hacer es quitar cualquier rastro de html antes del php de manera que la linea 1 empieze con <?php…. include…

Espero esto les ayude saludos!

Owen
Publicado: 04/03/2012 9:05 pm

Buenas a Todos.
Quisiera saber como exportar a Excel y PDF, desde una misma libreria o alguna idea de ello.
Se que existe el FPDF y PHPExcel, pero la idea es crear un reporte, con una logica, y exportar en dos formatos.

saludos

Daniel
Publicado: 26/03/2012 1:56 pm

Buenos días, estoy trabajando con ASP y FPDF, necesito imprimir un código de barra, tengo un problema cuando quiero incorporar una tipografia TTF.
Agregue el archivo TTF a la carptea font de fpdf, genere el afm y cree un archivo .js de metricas, que según vi es lo que utiliza el fpdf de asp para levantar las fuentes.
Mero me tira un error «La fuente PF Interleaved 2of5 contiene un cuadro /Bbox erroneo».
Ya probé todo lo que se me ocurrió pero sigue le problema
No se si js esta bien creado ya que no encontré ningún ejemplo funcional.
Alguien me puede dar una mano?

Muchas gracias.

Rogelio
Publicado: 14/04/2012 5:15 pm

¿Alguien sabe cómo le puedo hacer para crear una nueva página (ya se que con $pdf->ezNewPage(); la creamos) pero que contenga una imagen de fondo distinta?

es decir, ya tengo una primer página donde tengo una imagen fondo:
pdf=new backgroundPDF(‘a4’, ‘portrait’, ‘image’, array(‘img’=>’imagen1.jpg’));
la idea es que la segunda página tenga otra imagen de fondo

Alejandro
Publicado: 19/04/2012 4:07 am

Hola unijimpe y compañia! Me descargué hace unos días la clase R&OS: pdf class , al ver este artículo (te sigo bastante) pero he de decir que no me sirvió, ninguna de las clases que he probado son flexibles en cuanto poder meterle tu propio codigo ya sea css, html, php, javascript…

Entonces seguí buscando y di con esto, que me ha salvado la vida.

Por las pruebas que he hecho:

– Genera pdf autoimprimibles (puse un enlace que al pulsarlo me generaba un pdf, que no se veia por ninguna parte y directamente salia por la impresora, algo que si que no he encontrado en ningun sitio)

– Hice un formulario de contacto con php, que al rellenarlo mandaba un email de confirmacion, y al crear el pdf funcionaba perfectamente con sus estilos y funciones.

Hasta la fecha no he hecho mas pruebas. Pero me gustó porque maneja varias opciones, iframes, php, ajax…

Aquí el enlace:

http://www.pdfservices.net/

Carlos
Publicado: 06/05/2012 7:40 pm

a los que les sale «SE HA PRODUCIDO UN ERROR AL CARGAR EL DOCUMENTO PDF» a mi me pasaba y el error es que tenemos que poner la dirreccion correcta del font[tipo de letra] y se tiene que poner por que es un atributo necesario…..

Antonio
Publicado: 15/05/2012 3:11 am

Hola a todos, yo utilizo http://www.pdfservices.net y me quité un peso de encima.

daisliamanuel
Publicado: 07/06/2012 1:06 am

Que tal, buenas a todos, me han parecido interesantes todas las situaciones aqui expuestas, sin embargo, no logré encontrar lo que busco, mi problema es que necesito repetir una imagen en todas mis paginas generadas, ya la tengo pero se muestra solo en la primera. Mucho agradeceré si pueden apoyarme ofreciendo mi ayuda tambien en caso de ser requerida y esté en mis posibilidades. Saludos y de antemano gracias!!!

Jorge
Publicado: 14/06/2012 1:16 pm

En el código de ejemplo, hay que sacar «$options», está demás el parámetro este.

Saludos.

luis
Publicado: 19/06/2012 12:08 pm

no e podido descargar el archivo algun otro link porfavor


la fuente ‘courier’ contiene un cuadro bbox erroneo este mensaje ya le intente cambiar por Helvetica en la linea
$pdf->selectFont(‘fonts/Helvetica.afm’); sin embargo sigo teniendo errores alguien podria ayudarme a descargar las librerias

luis
Publicado: 31/07/2012 11:46 am

se pueden incluir imagenes en el pdf generado?

gerardo
Publicado: 25/08/2012 5:17 pm

buenas ! lei sobre la parte de alinear el texto de las tablas, yo tome el ejemplo que publicas en la pagina, donde hay un arreglo llamado $titles, es allí donde debo hacer la alineación, como lo hago? o debo hacer otro array? con los mismos titulos, podrias darme un ejemplo en base al script presentado en esta página por favor…

gerardo
Publicado: 25/08/2012 5:24 pm

Buenas! yo lei el manual acerca de la alineacion del texto en las tablas de consultas para los PDF, tomando el script sobre pdf con php y mysql que presentas, hay un arraglo llamado $titles, que contine:
$titles = array(
‘num’=>’Numero‘,
‘usuario’=>’Nombre‘,
‘clave’=>’Clave‘,

); en el manual dice que eztable lleva 4 parametros y uno de ellos el el de las columnas, será en este arreglo que debo hacer la alineacion? o tengo que crear otro arreglo? puedes darme un pequeño ejemplo de como alinear el texto, en base a ese script?… gracias

Juan M Wagner
Publicado: 04/09/2012 4:52 pm

Hola, Luis.
Si es posible agregar imágenes, recién lo he necesitado. Se debe utilizar la funcion

$pdf->addJpegFromFile(‘logotipo.jpg’, x, y, width, height);

Creo haber visto otra función para PNG.

beto
Publicado: 06/09/2012 10:15 am

si luis, podes usar una imagen de fondo o de ilustracion usando include(‘class.backgroundpdf.php’);///para fondo
$pdf = new backgroundPDF(‘a4’, ‘portrait’, ‘image’, array(‘img’=>’Publi3.jpg’)); /// y aca definis

hernis
Publicado: 03/10/2012 1:08 am

amigo como puedo poner la primera fila de la tabla oscura, es decir la fila donde estan los nombres de los campos ?

Luis
Publicado: 12/12/2012 1:09 am

Gracias por la respuesta a mi pregunta anterior, ya pude agregar la imagen!!.

Ahora tengo otra duda; he utilizado la url http://fpdf.fruit-lab.de/ para convertir archivos *.ttf a *.afm y agregarlos a mi carpeta fonts, pero cuando cargo el pdf me aparece el error «La fuente xxx contiene un cuadro /Bbox erróneo».

¿Alguien sabe como solucionar esto o como cargar correctamente una nueva fuente?

Wilson
Publicado: 19/12/2012 4:46 pm

Buenas, :D

Cómo hago para que el pdf quede guardado en el disco, sin tener que hacerlo manualmente?. Debo enviar correos con el pdf generado. Y esto se debe hacer manualmente.

Muchas Gracias

Dan
Publicado: 02/01/2013 4:08 pm

Hola buen dia
Eh estado trabajando con estalibreria y lei la documentacion pero no encontre nada relacionado con esta pregunta no se si alguien pueda ayudarme..

Quiero crear un pdf hasta qui todo bien pero ejemplo
hice la primera pagina la Segunda pagina ya la tengo y solo quiero unirla al mismo documento
alguien sabe como hacer esto con esta libreria?

Gerardo
Publicado: 12/01/2013 10:25 am

Voy a crear un enlace que genere el documento PDF, el caso es que quiero que al pulsar el link, se de la opción para guardarlo o abrirlo, y no que lo abra directamente. como lo hago?. Gracias…

Diego
Publicado: 08/04/2013 1:36 pm

Hola

Oye estoy trabajando con esta clase y es muy buena pero no encuentro como colocar viñetas en el pdf tienes alguna idea si se puede por mas que busque no lo encontre saludos

Fedra
Publicado: 21/05/2013 10:31 pm

yo solo tengo un problema con la imagen l misma la muestra en windows muy bien pero en debian sale error o no la muestra esta bien la extencion verifique minusculas todo pero no la muestra necesito ayuda

yeid
Publicado: 08/09/2013 3:08 am

Buenos dias…
Tengo una duda, estoy reutilizando este còdigo, tiene porblemas para generar el pdf, en ocasiones lo genera en otras no… pero bueno mi problema es que necesito utilizar una funcion que està en una clase php independiente…. como hago para que se pueda usar ???

ejm: Necesito convertir la variable $resultsalario que traigo de BD a letras
ya la funcion la tengo lista, se llama nomtoletras();
como hago pa que me la reconozca ? debo poner algo adelante ?

codigo:
$pdf->ezText(«Que $nombres identificado(a) con la cédula de ciudadanía No. $identificacion , labora en la Coorporación en el cargo $cargo , con contrato a término $contrato desde el: $fecha_ingreso . Y su salario mensual es $ $resultsalario.», 12);
//funcion que deseo usar para convertir la variable
numtoletras($resultsalario);

De antemano mil gracias.

Pablo
Publicado: 10/09/2013 9:21 am

Tengo que imprimir un codigo de barra generado con http://www.barcodephp.com en un documento pdf….como podre hacerlo?

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)