2016-10-16 13 views
0

Si vous connaissez ce thème, merci de laisser un commentaire. J'essaie d'obtenir le fichier pdf de docx en utilisant phpoffice/word. Mais je ne peux pas le rendre réel parce que pour les tests de journée je ne reçois que cette erreur:Création d'un pdf à partir d'un problème de bibliothèque de rendu docx

PHP Fatal error: Uncaught exception 'PhpOffice\PhpWord\Exception\Exception' with message 'PDF rendering library or library path has not been defined. 

S'il vous plaît ne me dites pas regarder cette question www, j'ai essayé - rien utile. Mon code:

require './vendor/autoload.php'; 
require './vendor/phpoffice/phpword/bootstrap.php'; 
$filename = 'example'; 
echo PHPWORD_BASE_DIR . '/TCPDF-master'; 
$wordPdf = \PhpOffice\PhpWord\IOFactory::load("./file_to_fill/ДКП квартира физики.docx"); 
$rendererName = \PhpOffice\PhpWord\Settings::PDF_RENDERER_TCPDF; 
$rendererLibrary = 'TCPDF'; 
$rendererLibraryPath = dirname(__FILE__).'/'. $rendererLibrary; 
\PhpOffice\PhpWord\Settings::setPdfRendererPath($rendererLibraryPath); 
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF'); 

$pdfWriter = \PhpOffice\PhpWord\IOFactory::createWriter($wordPdf , 'PDF'); 
if (file_exists($filename.".pdf")) unlink($filename.".pdf"); 
$pdfWriter->save($filename.".pdf"); 

Je sais que mon problème est la bibliothèque, mais je ne peux vraiment pas comprendre où le fichier de cette bibliothèque est. Peut-être arrive-t-il car aujourd'hui, pour la première fois, j'essayais de travailler avec le compositeur. J'ai essayé différentes bibliothèques comme dompdf et TCPDF et mes autres. Donc, si vous avez des idées bienvenues. =)

Répondre

0

Donc, après de nombreuses heures de recherche et de test j'ai eu le code de travail. Peut-être que je ne suis pas seulement besoin de cela. Pour bibliothèque TCPDF:

define('PHPWORD_BASE_DIR', realpath(__DIR__));  
require './vendor/autoload.php'; 
require './TCPDF-master/tcpdf.php'; 
$PdfPath = realpath(PHPWORD_BASE_DIR . '/TCPDF-master'); 
\PhpOffice\PhpWord\Settings::setPdfRendererPath($PdfPath); 
\PhpOffice\PhpWord\Settings::setPdfRendererName('TCPDF'); 
$phpWord = \PhpOffice\PhpWord\IOFactory::load('yourtemplate.docx'); 
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF'); 
$xmlWriter->save('result.pdf'); 

Pour la bibliothèque de MPDF:

define('PHPWORD_BASE_DIR', realpath(__DIR__)); 
require './vendor/autoload.php'; 
require './vendor/mpdf/mpdf/mpdf.php'; 
$PdfPath = realpath(PHPWORD_BASE_DIR . '/vendor/mpdf/mpdf'); 
\PhpOffice\PhpWord\Settings::setPdfRendererPath($PdfPath); 
\PhpOffice\PhpWord\Settings::setPdfRendererName('MPDF'); 
$phpWord = \PhpOffice\PhpWord\IOFactory::load('temp.docx'); 
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord , 'PDF'); 
$xmlWriter->save('result.pdf'); 

Mais la dompdf ne fonctionne pas du tout ( donc ces deux bibliothèques fonctionne mais pas bon, l'une d'elle me donne " ??? "quand je saisis le texte russe, et tous les deux donnent beaucoup d'espace libre dans le document (peut être la marge) et je ne peux pas comprendre comment l'éditer