ok la clase esta algo larga y como tube que hacer algo como una libreria porque es para generar el reporte pero en formato imagen el porque es algo muy largo de contar, aca te voy a colocar lo que llevo hecho del metodo
Código PHP:
Ver originalpublic function cell($text, $align = 'L', $border = 0,$shadow = false, $width = NULL, $height = 20)
{
$width = $this->_width;
}
if(self::$i === 0 || self::$nFillCell == self::$nFillCellActual){
// border top
if(self::$nFillCell > 0 && self::$i === 0){
$xTop1 = self::$_x - 5;
$xTop2 = self::$_x + $width -5 -12;
$yTop1 = $this->_y - $this->_fontSize;
self::$nFillCellActual = self::$nFillCell;
self::$i = 0;
}
}
// border bottom
$xBottom1 = self::$_x -5;
$xBottom2 = self::$_x + $width -5 -12;
$yBottom1 = $this->_y + 7;
//border left
$xLeft1 = self::$_x - 5;
$yLeft1 = $this->_y - $this->_fontSize;
$yLeft2 = $this->_y + $height - $this->_fontSize;
//border right
$xRight1 = self::$_x + $width - 5 -12;
$yRight1 = $this->_y - $this->_fontSize;
$yRight2 = $this->_y + $height - $this->_fontSize;
// colocamos el borde
if($border > 0){
//top
imageline($this->_img
,$xTop1,$yTop1,$xTop2,$yTop1,$borderColor); //bootom
imageline($this->_img
,$xBottom1,$yBottom1,$xBottom2,$yBottom1,$borderColor); //left
//right
self::$i++;
}else{
self::$nFillCell++;
self::$i = 0;
}
// Reemplace la ruta por la de su propia fuente
//$fuente = "helper/$this->_font.ttf";
$fuente = "$this->_font.ttf";
//$fuente = "$this->_font.ttf";
// Añadir algo de sombra al texto
// Añadir el texto
if($align == 'L'){
$left = self::$_x;
$right = $this->_y + 3;
}elseif($align == 'C'){
$left = ($width - $var[2]) / 2;
$right = $this->_y + 3;
}elseif($align == 'R'){
$right = $this->_y + 3;
$left = $width - ($var[2] + 15);
}
else{
throw new FormatToImageGdException("Unsopport Align");
}
//el dilema es aca, genera el texto bien, pero cuando le paso algo con ñ o tilde me sale el cuadrito
imagettftext($this->_img
, $this->_fontSize
, 0, $left, $right, $border, $fuente, $text); self::$_x = $xRight1 + 5;
if(self::$_x + 5 >= $this->_width){
self::$i++;
$this->ln();
self::$_x = 12;
}
}
los parametros son
$this->_img es la imagen creada con
imagecreatetruecolor
$this->_fontSize es el tamaño de la letra, yo en la clase lo asigno con un metodo.
los demas parametros se llenan con los parametros que se le pasan al metodo, un ejemplo
Código PHP:
Ver original$gd->cell('Hola Mundo','L',0,false,110);
te deberia de dar la palabra hola mundo en una imagen, agregale un caracter Ñ y ve que te sale, no coloco toda la clase porque el problema esta en esta funcion, de hecho es la que mas he trabajado porque es la que he estado necesitando, luego cuando la termine la hare publica para los que necesiten aunque es algo inutil XD