Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Symfony y PHPWord !Problemas¡

Estas en el tema de Symfony y PHPWord !Problemas¡ en el foro de Symfony en Foros del Web. Un cordial saludo primero que todo. Bueno esta vez, vengo a pedir ayuda o colaboración para ver si alguien me guía o me pude explicar ...
  #1 (permalink)  
Antiguo 15/12/2014, 10:57
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 10 meses
Puntos: 41
Exclamación Symfony y PHPWord !Problemas¡

Un cordial saludo primero que todo.

Bueno esta vez, vengo a pedir ayuda o colaboración para ver si alguien me guía o me pude explicar la forma adecuada de poder crear un archivo PDF en Symfony con la libreria PHPOffice.

Bueno ya he probado en crear archivos: .docx, .odt y .rtf y todo va de las mil maravillas y de igual forma en modificar un plantilla .docx, pero ahora estoy intentando crear un archivo .pdf y me lanza este pequeño error: "Unable to load PDF Rendering library" esto es lo que tengo de codigo:

Código PHP:
public function getReportDocsAction() 
{            
        
$phpWord = new PhpOfficePhpWordPhpWord();

    
// Every element you want to append to the word document is placed in a section.
    // To create a basic section:
    
$section $phpWord->addSection();
    
    
// You can also put the appended element to local object like this:
    
$fontStyle = new PhpOfficePhpWordStyleFont();
    
$fontStyle->setBold(true);
    
$fontStyle->setName('Tahoma');
    
$fontStyle->setSize(22);

    
// After creating a section, you can append elements:
    
$myTextElement $section->addText('Word!');
    
$myTextElement->setFontStyle($fontStyle);

    
// Create a second page
    
$section->addPageBreak();
        
    
$myTextElement $section->addText('Hello Word!!');
    
$myTextElement->setFontStyle($fontStyle);

    
// Add first page header
    
$header $section->addHeader();    
    
$header->addText('This is the header with ');
    
$header->addLink('http://google.com''link to Google');
        
    
// Add footer
    
$footer $section->addFooter();    
    
$footer->addPreserveText('Page {PAGE} of {NUMPAGES}.',  array('positioning' => PhpOfficePhpWordStyleImage::POSITION_ABSOLUTE));
    
$footer->addLink('http://google.com''Direct Google');

    
// Create a second page
    
$section->addPageBreak();

    
$myTextElement $section->addText('Some text...');
    
$myTextElement->setFontStyle($fontStyle);

    
// Finally, write the document:
    
$objWriter PhpOfficePhpWordIOFactory::createWriter($phpWord'Word2007');
    
$objWriter->save('HelloWorld.docx');

    
$rendererName PhpOfficePhpWordSettings::PDF_RENDERER_DOMPDF;
        
$rendererLibrary 'DomPDF.php';
    
$rendererLibraryPath '/var/www/html/sifinca/vendor/phpoffice/phpword/src/PhpWord/Writer/PDF/'.$rendererLibrary;

    
PhpOfficePhpWordSettings::setPdfRendererPath($rendererLibraryPath);
    
PhpOfficePhpWordSettings::setPdfRendererName($rendererName);

    
$objWriter PhpOfficePhpWordIOFactory::createWriter($phpWord'PDF');
    
$objWriter->save('HelloWorld.pdf');

Si alguien a trabajado con esta librería de verdad le agradecería la manera en que puedo hacer que me funcione o corra al 100%...

Gracias de antemano.
  #2 (permalink)  
Antiguo 16/12/2014, 09:41
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 10 meses
Puntos: 41
Respuesta: Symfony y PHPWord !Problemas¡

Excelente, ya pude solucionar el pequeño error.

Aquí se las muestro para el que le salga o no sepa como solucionarlo:

Código PHP:
 public function getReportDocsAction() 
 {            
     
define("DOMPDF_ENABLE_AUTOLOAD"false);
    include(
'/var/www/html/project/vendor/dompdf/dompdf/dompdf_config.inc.php');

        
$phpWord = new PhpOfficePhpWordPhpWord();
    
    
$section $phpWord->addSection();
    
    
$fontStyle = new PhpOfficePhpWordStyleFont();
    
$fontStyle->setBold(true);
    
$fontStyle->setName('Tahoma');
    
$fontStyle->setSize(22);
    
    
$myTextElement $section->addText('Word!');
    
$myTextElement->setFontStyle($fontStyle);

    
$section->addPageBreak();
        
    
$myTextElement $section->addText('Hello Word!');
    
$myTextElement->setFontStyle($fontStyle);

    
$header $section->addHeader();    
    
$header->addText('This is the header with ');
    
$header->addLink('http://google.com''link to Google');

    
$footer $section->addFooter();    
    
$footer->addPreserveText('Page {PAGE} of {NUMPAGES}.');
    
$footer->addLink('http://google.com''Direct Google');

    
$section->addPageBreak();

    
$myTextElement $section->addText('Some text...');
    
$myTextElement->setFontStyle($fontStyle);

    
$objWriter PhpOfficePhpWordIOFactory::createWriter($phpWord'Word2007');
    
$objWriter->save('HelloWorld.docx');
    
    
$rendererName PhpOfficePhpWordSettings::PDF_RENDERER_DOMPDF;    
    
$rendererLibraryPath '/var/www/html/project/vendor/dompdf/dompdf';    

    
PhpOfficePhpWordSettings::setPdfRendererPath($rendererLibraryPath);
    
PhpOfficePhpWordSettings::setPdfRendererName($rendererName);

    
$PHPWord PhpOfficePhpWordIOFactory::load('/var/www/html/project/web/HelloWorld.docx'); 
    
    
$objWriter PhpOfficePhpWordIOFactory::createWriter($PHPWord'PDF');
    
$objWriter->save('HelloWorld.pdf');    

Ahora si me realiza la creación del archivo PDF al 100%, pero ahora se me presento el otro problema con este mismo ya que no esta creando el Footer y Header y las paginas que deberían salir en el PDF que están en el archivo DOCX, pero eso es otra historia, lo importante es que pude dar con el problema que era que esta dando render a la ruda del path equivocada.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:46.