entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

PHPexcel no exporta imágenes de un XLS a un PDF, ¿Que puedo hacer?

Hola, mi problema es que al momento de pasar un XLS a PDF en este ultimo no se incluyen las imágenes que originalmente tiene el XLS

  • Estoy usando PHPExcel.
  • Todo lo demás: fuentes, estilos, fondos de celda, bordes los genera bien.
  • Ya probe con los 3 renders posibles domPDF, mPDF y tcPDF.

Saludos y gracias por su tiempo.

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola Marcos,

para que PHPExcel te convierta las imágenes tenés que incrustárselas a partir de la ruta

$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('PHPExcel logo');
$objDrawing->setDescription('PHPExcel logo');
$objDrawing->setPath('./images/phpexcel_logo.gif');       // filesystem reference for the image file
$objDrawing->setHeight(36);                 // sets the image height to 36px (overriding the actual image height); 
$objDrawing->setCoordinates('D24');    // pins the top-left corner of the image to cell D24
$objDrawing->setOffsetX(10);                // pins the top left corner of the image at an offset of 10 points horizontally to the right of the top-left corner of the cell
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

No he visto aplicaciones que lean las imaǵenes directamente desde el XLS y las convierta en una imagen en el PDF. Si encontrás la forma, por favor compartila.

http://phpexcel.codeplex.com/discussions/271473

Saludos!

0voto

mrczrt comentado

Hola Leonardo, entonces si tengo algo así donde solo abro el xls y escribo el pdf tengo que extraer las imagenes primero?

    require_once 'classes/PHPExcel.php';
$objPHPExcel = PHPExcel_IOFactory::load("archivo.xls");

    $rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
    $rendererLibrary = 'PDF';
    $rendererLibraryPath = dirname(__FILE__).'/classes/dompdf';  //tcpdf

    if (!PHPExcel_Settings::setPdfRenderer(
            $rendererName,
            $rendererLibraryPath
        )) {
        die(
            'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
            EOL .
            'at the top of this script as appropriate for your directory structure'
        );
    }

$objWriter = new PHPExcel_Writer_PDF($objPHPExcel);
$objWriter->save("salida.pdf");

0voto

Leonardo-Tadei comentado

Hola Marcos,

no he usado PHPExcel recientemente, pero en las versiones anteriores la única forma de poner una imagen era haciendo referencia al archivo en disco.

Ojeé en la documentación actual y no encuentro un mecanismo diferente. Podrías probar armar un XLS que tenga imágenes vinculadas en lugar de incrustadas a ver si la biblioteca PHPExcel toma la ruta, pero si funcionase no parece un método universal ya que pasa a depender de cómo está armado el XLS.

Igual, antes que nada, te sugiero revisar a fondo la documentación actual de la biblioteca para ver si existe un mecanismo más cómodo para exportar a PDF con imágenes y todo.

Saludos cordiales!

0voto

mrczrt comentado

Gracias definitivamente tuve que extraer las imágenes de cada xls para pasarlos de forma externa al pdf, saludos.

0voto

Leonardo-Tadei comentado

Me alegra que te haya servido mi comentario Marcos.
Saludos cordiales

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta