Metodo para enviar una imagen a un pdf

Feliz año nuevo mire tengo un script en java script mediante el cual se previsualiza una imagen en un iframe para ello se utiliza una variable de sesion llamada cont, entonces la manera en la que mandar la imagen al pdf es la siguiente
<?
echo "<FORM method='post'  action='finiquitopdf.php'>";
echo "<input type='submit' name='submit' value='Obtener Pdf'>";
 echo "</FORM>";
 ?>
Asi la recibo en el pdf
<?
$_SESSION['cont'];
$datos_imagen=$_SESSION["cont"]  ;
header("Content-type: image/jpeg" );
$datos_imagen = imagecreatefromjpeg($datos_imagen);
ob_start();
imagejpeg($datos_imagen);
$foto = ob_get_clean();
$pdf->AddPage();
$pdf->Image('http://localhost/php/Verimagendesdea/'.$foto.'',120,145,80);
Utilizo la libreria de tcpdf que es muy similar a fpdf mi problemas es que no logro mostrar la imagen en el pdf gracias y saludos

2 Respuestas

Respuesta
1
Creo que tienes varios problemas con el codigo en si.. se debe hacer asi con tcpdf, la idea es que con esa libreria por que lo que veo puedes enviarle un texto en formato html, entonces lo que haces es crear el src de la imagen y la envias
$this->pdf->SetCreator(PDF_CREATOR);
                $this->pdf->SetAuthor(PDF_AUTHOR);
                $this->pdf->SetTitle("titulo");
                $this->pdf->SetSubject("yo");
                $this->pdf->SetKeywords("a,b");
                $this->pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
                // Seteamos Margenes
                $this->pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
                $this->pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
                $this->pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
                $this->pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
                $this->pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 
                $this->pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
                $this->pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
                $this->pdf->setLanguageArray($l);
                // Inciciamos Documento 
                $this->pdf->AliasNbPages();
$pdf->texto(<img src="http://localhost/php/Verimagendesdea/" . $_SESSION["cont"]>');
                $this->pdf->AddPage();
                // Codigo de Barra para el Foot
                $this->pdf->SetBarcode(date("Y-m-d H:i:s", time()));
                // Escribimos el archivo
                $string=utf8_encode($string);
                $this->pdf->WriteHTML($string, true, 0);               $pdf->Output('archivo_salida.pdf', 'I');
ok gracias caballero por tamarse la molestia de contestar se me olvido comentarle que la imagen que carga en el frame lo carga en una pagina llamada previsor.php es decir tengo que poner
$pdf->texto('<img src=http://localhost/php/Verimagendesdea/previsor.php '.$_SESSION["cont"]>' ');
el codigo queda de esta manera
<?
require_once('eng.php');
require_once('tcpdf.php');
$this->pdf->SetCreator(PDF_CREATOR);
                $this->pdf->SetAuthor(PDF_AUTHOR);
                $this->pdf->SetTitle("titulo");
                $this->pdf->SetSubject("yo");
                $this->pdf->SetKeywords("a,b");
                $this->pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
                // Seteamos Margenes
                $this->pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
                $this->pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
                $this->pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
                $this->pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
                $this->pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 
                $this->pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
                $this->pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
                $this->pdf->setLanguageArray($l);
                // Inciciamos Documento 
                $this->pdf->AliasNbPages();
$pdf->texto('<img src="http://localhost/php/Verimagendesdea/" '.$_SESSION["cont"].'>');
                $this->pdf->AddPage();
                // Codigo de Barra para el Foot
                $this->pdf->SetBarcode(date("Y-m-d H:i:s", time()));
                // Escribimos el archivo
                $string=utf8_encode($string);
                $this->pdf->WriteHTML($string, true, 0);              
    $pdf->Output('archivo_salida.pdf', 'I');
 ?>
marca error en la linea 5
Fatal error: Using $this when not in object context in D:\AppServ\www\php\Verimagendesdea\prueba.php on line 5
Gracias y salu2
creo que debes quitar el $this y deja solo pdf->
ok gracias caballero ahora quedo asi
?
require_once('eng.php');
require_once('tcpdf.php');
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(PDF_AUTHOR);
$pdf->SetTitle("titulo");
$pdf->SetSubject("yo");
$pdf->SetKeywords("a,b");
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
                // Seteamos Margenes
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->setLanguageArray($l);
                // Inciciamos Documento 
$pdf->AliasNbPages();
$pdf->texto('<img src="http://localhost/php/Verimagendesdea/" '.$_SESSION["cont"].'>');
$pdf->AddPage();
                // Codigo de Barra para el Foot
$pdf->SetBarcode(date("Y-m-d H:i:s", time()));
                // Escribimos el archivo
$string=utf8_encode($string);
$pdf->WriteHTML($string, true, 0);           
$pdf->Output('archivo_salida.pdf', 'I');
 ?>
marca este error
Fatal error: Call to a member function SetCreator() on a non-object in D:\AppServ\www\php\Verimagendesdea\prueba.php on line 4
¿Cuál es la linea 4? ¿Tienes mas lineas antes?
ok gracias la linea 4 es esta
1.-<?
2.-require_once('eng.php');
3.-require_once('tcpdf.php');
4.-$pdf->SetCreator(PDF_CREATOR);<------
Asi toma las lineas en dreamweaver
Creo que falta esta linea y ojo revisa el path de las librerias
require_once('../config/lang/eng.php');
require_once('../tcpdf.php');
//ESTA!!!!! LINEA!
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
ok si ya lo cheque marca error en el metodo utilizado texto
$pdf->texto('<img src="http://localhost/php/Verimagendesdea/" '.$_SESSION["cont"].'>'); line 53
Fatal error: Call to undefined method MYPDF::texto() in D:\AppServ\www\php\Verimagendesdea\prueba.php on line 53
gracias salu2
Ok haz el siguiente cambio, quita esa linea y pon esto:
$pdf->AddPage();
$htmlcontent = '<img src="http://localhost/php/Verimagendesdea/" '.$_SESSION["cont"].'>';
$pdf->writeHTML($htmlcontent, true, 0, true, 0);
ok gracias caballero ahora el codigo quedo asi
<?
require_once('eng.php');
require_once('tcpdf.php');
class MYPDF extends TCPDF {
    //Page header
 public function Header() {
      // Logo
        $this->Image(K_PATH_IMAGES.'invi.jpg', 145, 7, 25);
        // Logo
        $this->Image(K_PATH_IMAGES.'Dibujo.jpg', 10, 7, 37);
  // Logo
  $this->Image(K_PATH_IMAGES.'letr.jpg', 55, 7, 87);
  // Set font
        $this->SetFont('helvetica', 'B', 7);
        // Move to the right
        $this->Cell(63);
        // Title
        $this->Cell(40, 70, '', 100, 30, 8);
        //$this->Cell(0, -100, 'Secretaria de Desarrollo Urbano y Vivienda', 135, 5, 10);
        // Line break
        $this->Ln(20);
    }
       public function Footer() {
        // Position at 1.5 cm from bottom
        $this->SetY(-15);
        // Set font
        $this->SetFont('helvetica', 'I', 8);
        // Page number
        $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, 0, 'C');
    }
}
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(PDF_AUTHOR);
$pdf->SetTitle("titulo");
$pdf->SetSubject("yo");
$pdf->SetKeywords("a,b");
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
                // Seteamos Margenes
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->setLanguageArray($l);
                // Inciciamos Documento 
$pdf->AliasNbPages();
$pdf->AddPage();
$htmlcontent = '<img src="http://localhost/php/Verimagendesdea/previsor.php"'.$_SESSION["cont"].'>';
$pdf->writeHTML($htmlcontent, true, 0, true, 0);
                // Codigo de Barra para el Foot
$pdf->Output('archivo_salida.pdf', 'I');
 ?>
Marca este error
TCPDF ERROR: [Image] No such file or directory in D:/AppServ/www/php/Verimagendesdea/rimagendesdea/previsor.php
salu2 y gracias
Aaa no amigo. Te dice que la ruta de la imagen.. no esta.. ojo.. mira que no te esta colocando la variable de session.. fuera de eso.. creeria que la ruta deberia ser algo como..
D:/AppServ/www/php/Verimagendesdea/rimagendesdea/imagen.jpg
pero el problema lo tienes es con la ruta de la imagen
No olvides valorar y cerrar la pregunta si la respuesta te parece correcta
Respuesta
1
¿Dentro de $id tiene la extension?
Buenas tardes , no solamente esta id tira este error
TCPDF ERROR: [Image] No such file or directory in D:/AppServ/www/images/%20
el directorio existe la imagen que cargo en la primera pagina la cargo desde esa direccion salu2 gracias
¿La id esta en una base de datos? Ahí tienees que pasarle el nombre de la imagen (incluído la extension)
Marcelo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas