Генерация PDF из .docx, сгенерированного PHPWord
Я создаю.docx
файлы из шаблона с помощьюPHPWord
, Он работает нормально, но теперь я хочу преобразовать сгенерированный файл вPDF
.
Сначала я попробовал использоватьtcpdf
в комбинации с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");
но когда я пытаюсь загрузить файл, чтобы преобразовать его вPDF
Я получаю следующее исключение при загрузке файла
Неустранимая ошибка: необработанное исключение «BadMethodCallException» с сообщением «Невозможно добавить PreserveText в раздел».
После некоторых исследований я обнаружил, что некоторые другие также имеют эту ошибку (phpWord - Невозможно добавить PreserveText в разделе)
РЕДАКТИРОВАТЬ
Попробовав еще немного, я узнал, чтоException
происходит только тогда, когда у меня есть некоторыеmail merge fields
в моем документе. Как только я удалил ихException
больше не подходит, но переделанныйPDF
файлы выглядят ужасно. Вся информация о стиле исчезла, и я не могу использовать результат, поэтому необходимость в альтернативе остается.
Я думал об использовании другого способа создания PDF, но я мог найти только 4 способа:
С помощьюOpenOffice - Невозможно, поскольку я не могу установить какое-либо программное обеспечение на Сервер. Также идет по пути, упомянутомуВот не работал ни как мой хостер (Strato) использует SunOS в качестве ОС и для этого нужен LinuxС помощьюphpdocx - У меня нет никакого бюджета, чтобы заплатить за это, и демо не может создать PDFС помощьюPHPLiveDocx - Это работает, но имеет ограничение 250 документов в день и 20 в час, и мне приходится конвертировать около 300 документов одновременно, может даже несколько раз в деньС помощьюPHP-Digital-Format-Convert - Выход выглядит лучше, чем сPHPWord
а такжеtcpdf
, но все еще не может использоваться, поскольку изображения отсутствуют, и большинство (не все!) стилейЕсть ли 5-й способ создания PDF? Или есть какое-нибудь решение, чтобы сгенерированные PDF-документы выглядели хорошо?