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 aimail merge fields
dans mon document. Une fois que je les ai retirées de laException
de ne pas venir plus, mais les convertis
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:
- À 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
- À 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
- À 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
- À l'aide de PHP-Numérique-Format-Convertir - La sortie est mieux que avec
PHPWord
ettcpdf
, 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...
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé Engrenages/pdf à convertir le fichier docx généré par phpword au format PDF:
Vous essayez de supprimer le lien d'un fichier PDF avant de l'enregistrer, et vous avez également à dissocier le document DOCX, pas le fichier PDF.
De l'essayer.
Essayez ceci:
Je ne pense pas que je suis correct..
Vous enregistrez le document en tant que contenu HTML
Après que vous lisez le fichier HTML du contenu et écrire le contenu en tant que fichier PDF à l'aide de mPDF ou tcPdf ou fpdf.