Generar PDF desde .docx generado por PHPWord
Estoy creando.docx
archivos de una plantilla usandoPHPWord
. Funciona bien, pero ahora quiero convertir el archivo generado aPDF
.
Primero intenté usartcpdf
en combinación conPHPWord
$wordPdf = \PhpOffice\PhpWord\IOFactory::load($filename.".docx");
\PhpOffice\PhpWord\Settings::setPdfRendererPath(dirname(__FILE__)."/../../Office/tcpdf");
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF');
$pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($wordPdf , 'PDF');
if (file_exists($filename.".pdf")) unlink($filename.".pdf");
$pdfWriter->save($filename.".pdf");
pero cuando trato de cargar el archivo para convertirlo aPDF
Recibo la siguiente excepción al cargar el archivo
Error grave: excepción no detectada 'BadMethodCallException' con el mensaje 'No se puede agregar PreserveText en la sección'.
Después de algunas investigaciones, descubrí que algunos otros también tienen este error (phpWord - No se puede agregar PreserveText en la Sección)
EDITAR
Después de probar un poco más descubrí que elException
solo ocurre cuando tengo algomail merge fields
en mi documento Una vez que los quitéException
ya no aparece, pero el convertidoPDF
Los archivos se ven horribles. Toda la información de estilo se ha ido y no puedo usar el resultado, por lo que la necesidad de una alternativa permanece.
Pensé en usar otra forma de generar el PDF, pero solo pude encontrar 4 formas:
UtilizandoOficina abierta - Imposible ya que no puedo instalar ningún software en el servidor. También siguiendo el camino mencionadoaquí tampoco funcionó como mi hoster (Strato) usa SunOS como sistema operativo y esto necesita LinuxUtilizandophpdocx - No tengo ningún presupuesto para pagarlo y la demostración no puede crear PDFUtilizandoPHPLiveDocx - Esto funciona, pero tiene la limitación de 250 documentos por día y 20 por hora y tengo que convertir alrededor de 300 documentos a la vez, tal vez incluso varias veces al díaUtilizandoPHP-Digital-Format-Convert - La salida se ve mejor que conPHPWord
ytcpdf
, pero aún no se puede usar ya que faltan imágenes, y la mayoría (¡no todos!) de los estilos¿Hay una quinta forma de generar el PDF? ¿O hay alguna solución para que los documentos PDF generados se vean bien?