Я пробовал весь день, чтобы заставить это работать. Сейчас я могу сохранить документ как файл .docx, но мне захотелось сохранить документ в формате PDF, который я пытался использовать с DOMPDF и TCPDF, но я продолжаю получать сообщение об ошибке «Невозможно загрузить библиотеку PDF». Я подтвердил, что путь правильный. , Я что-то упускаю? спасибо за вашу помощьPHPWord to PDF не удалось загрузить библиотеку
$rendererName = \PhpOffice\PhpWord\Settings::PDF_RENDERER_TCPDF;
$rendererLibrary = 'tcpdf.php';
$rendererLibraryPath = dirname(__FILE__) .'/plugins/tcpdf/' . $rendererLibrary;
\PhpOffice\PhpWord\Settings::setPdfRenderer($rendererName,$rendererLibraryPath);
$document->saveAs('temp.docx'); // Save to temp file
$test = \PhpOffice\PhpWord\IOFactory::load('temp.docx'); // Read the temp file
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($test, 'PDF');
$xmlWriter->save('result.pdf'); // Save to PDF
unlink('temp.docx'); // Delete the temp file
Вот код, который бросает ошибку
public function __construct(PhpWord $phpWord)
{
parent::__construct($phpWord);
$includeFile = Settings::getPdfRendererPath() . '/' . $this->includeFile;
if (file_exists($includeFile)) {
/** @noinspection PhpIncludeInspection Dynamic includes */
require_once $includeFile;
} else {
// @codeCoverageIgnoreStart
// Can't find any test case. Uncomment when found.
throw new Exception('Unable to load PDF Rendering library');
// @codeCoverageIgnoreEnd
}
}
Здесь полная ошибка
Фатальная ошибка: Uncaught исключение «PhpOffice \ PhpWord \ Exception \ Exception 'с сообщением «Невозможно загрузить библиотеку рендеринга PDF» в .../PHPWord/Writer/PDF/AbstractRenderer.php: 92 Трассировка стека: # 0 .../PHPWord/Writer/PDF.php (61): PhpOffice \ PhpWord \ Writer \ PDF \ AbstractRenderer -> __ construct (Object (PhpOffice \ PhpWord \ PhpWord)) # 1 .../PHPW ord/IOFactory.php (34): PhpOffice \ PhpWord \ Writer \ PDF -> __ construct (Object (PhpOffice \ PhpWord \ PhpWord)) # 2 .../download_report.php (578): PhpOffice \ PhpWord \ IOFactory :: createWriter (Object (PhpOffice \ PhpWord \ PhpWord), 'PDF') # 3 {main} брошен в .../PHPWord/Writer/PDF/AbstractRenderer.php в строке 92
В какой строке вы видите ошибку? Это показывает? Вы проверили разрешения на папку tcpdf? – dgig
строка ошибки AbstractRenderer.php: 92 и PDF.php (61) Я не проверял разрешения, какими они должны быть? – joanb
, вероятно, 755 - это хороший способ начать работу с разрешениями. Хотя вы могли бы, * AS A TEST * установить их на 777, чтобы убедиться, что это проблема, и переключите ее обратно. – dgig