Gere PDF a partir de .docx gerado pelo PHPWord
Estou criando.docx
arquivos de um modelo usandoPHPWord
. Funciona bem, mas agora quero converter o arquivo gerado emPDF
.
Primeiro eu tentei usartcpdf
em combinação comPHPWord
$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");
mas quando tento carregar o arquivo para convertê-lo emPDF
Recebo a seguinte exceção ao carregar o arquivo
Erro fatal: exceção não capturada 'BadMethodCallException' com a mensagem 'Não é possível adicionar PreserveText na seção.'
Após algumas pesquisas, descobri que outras também possuem esse bug (phpWord - Não é possível adicionar PreserveText na seção)
EDITAR
Depois de tentar um pouco mais, descobri que oException
só ocorre quando tenho algummail merge fields
no meu documento Depois que eu os removi,Exception
não aparece mais, mas o convertidoPDF
arquivos parecem horríveis. Todas as informações de estilo desapareceram e não posso usar o resultado, portanto, a necessidade de uma alternativa permanece.
Pensei em usar outra maneira de gerar o PDF, mas só consegui encontrar quatro maneiras:
UsandoEscritório aberto - Impossível, pois não consigo instalar nenhum software no servidor. Também seguindo o caminho mencionadoaqui também não funcionou como meu hoster (Strato) usa SunOS como o sistema operacional e isso requer LinuxUsandophpdocx - Não tenho orçamento para pagar e a demonstração não pode criar PDFUsandoPHPLiveDocx - Isso funciona, mas tem a limitação de 250 documentos por dia e 20 por hora e eu tenho que converter cerca de 300 documentos de uma só vez, talvez até várias vezes ao diaUsandoPHP-Digital-Format-Convert - A saída parece melhor do que comPHPWord
etcpdf
, mas ainda não pode ser usado, pois faltam imagens e a maioria (nem todos!) dos estilosExiste uma quinta maneira de gerar o PDF? Ou existe alguma solução para fazer com que os documentos PDF gerados tenham uma boa aparência?