Générer du PDF à partir .docx généré par PHPWord

Je suis entrain de créer .docx fichiers à partir d'un modèle à l'aide de PHPWord. Il fonctionne très bien mais maintenant je veux convertir le fichier généré PDF.

J'ai d'abord essayé d'utiliser tcpdf en combinaison avec PHPWord

$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");  

mais quand j'essaie de charger le fichier à le convertir en PDF - je obtenir de l'exception suivante lors du chargement du fichier


Fatal error: Uncaught exception 'BadMethodCallException" avec le message " Impossible d'ajouter PreserveText dans la Section.'

Après quelques recherches, j'ai constaté que certains d'autres ont aussi ce bug (phpWord - Impossible d'ajouter PreserveText dans la Section)

MODIFIER

Après avoir essayé autour de certains plus que j'ai découvert, que le Exception se produit uniquement quand j'en ai mail merge fields dans mon document. Une fois que je les ai retirées de la Exception de ne pas venir plus, mais les convertis PDF fichiers de l'air horrible. Toutes les informations de style ont disparu et je ne peux pas utiliser le résultat, de sorte que la nécessité d'une alternative séjours.

J'ai pensé à utiliser un autre moyen de générer le PDF, mais je n'ai pu trouver de 4 façons différentes:

  1. À l'aide de OpenOffice - Impossible que je ne peut pas installer n'importe quel logiciel sur le Serveur. Aussi le chemin mentionné ici ne fonctionne pas, soit que mon hébergeur (Strato) utilise SunOS comme les OS et Linux
  2. À l'aide de phpdocx - je n'ai pas de budget pour payer pour cela et le démo ne peut pas créer un fichier PDF
  3. À l'aide de PHPLiveDocx - Cela fonctionne, mais a la limite de 250 documents par jour et 20 $ l'heure et je dois convertir près de 300 documents à la fois, peut-être même plusieurs fois par jour
  4. À l'aide de PHP-Numérique-Format-Convertir - La sortie est mieux que avec PHPWord et tcpdf, mais pas encore utilisable que des images sont manquantes, et la plupart (pas tous!) des styles

Est-il un 5ème pour générer le PDF? Ou est-il une solution pour rendre les documents PDF générés à l'air sympa?

  • Décent de sortie au format PDF va probablement vous demander de créer un deuxième modèle (vous en avez déjà un gabarit MSWord, la prochaine, vous aurez besoin d'un PDF modèle de la prise de votre document source à l'entrée que tcpdf veut).
  • Ouais je l'ai déjà réfléchi à la création d'un modèle HTML comme il y a quelques la bibliothèque pour convertir HTML en PDF, mais j'ai beaucoup de différents modèles, de sorte qu'il serait tout à fait beaucoup de travail pour les créer et de les réécrire de la façon dont je les remplir avec le contenu, donc j'espère qu'il y est un autre moyen plus facile...
  • Ce lien peut aider: github.com/PHPOffice/PHPWord/issues/311
  • PHPWord devrait faire le travail, comme @hasan.hameed mentionné. Comme vous ne pouvez pas installer de logiciel supplémentaire ne devrait pas être une autre option pour la convertir en une belle lookin PDF. Mon autre pensée, ce serait en utilisant Imagick mais cela exige de la soffice binaire, ce qui ne devrait pas être installé sur strato...
InformationsquelleAutor Pinguin895 | 2015-10-12