У кого-нибудь есть опыт редактирования шаблона docx. Для моей php-админ-зоны нужны функциональные возможности для изменения шаблонов docx, эта функция будет использоваться очень часто, поэтому важно иметь память.
Я нашел phpword, который находится в бета-версии, он работает, но не 100%
Я был googling и нашел phpdocx, кто-нибудь использовал это и может дать мне некоторую обратную связь?
Есть ли другие решения, которые мне нужны, это возможность изменять текст и, возможно, изображение в шаблоне docx.
Я буду готов заплатить за услугу, но не за массы, и будет предпочтительной одна плата за лицензию.
Вы должны попробовать OpenTBS .
Это библиотека PHP с открытым исходным кодом, которая строит DOCX с помощью технологии шаблонов.
Нет временного каталога, не требуется дополнительный exe. Сначала создайте свои DOCX, XLSX, PPTX с Ms Office (ODT, ODS, ODP также поддерживаются, это файлы OpenOffice). Затем вы используете OpenTBS для загрузки шаблона и изменения содержимого с помощью механизма шаблонов (просто, см. Демонстрацию). В конце вы сохраняете результат там, где вам нужно. Это может быть новый файл, поток загрузки, двоичная строка PHP.
OpenTBS также может изменять изображения и диаграммы в документе.
Шаблон PHP DOCX
http://www.phpclasses.org/package/8247-PHP-Create-Microsoft-Word-documents-from-templates.html
include( 'docxtemplate.class.php' ); $docx = new DOCXTemplate( 'invoice.tpl.php' ); $docx->set(array( 'org' => 'MyCompany LLC', 'addr' => 'Green Street, 82' )); $docx->download('invoice.docx');
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Employee Details</title> </head> <body> <form method="post" action="#"> <input type="text" name="e_name" /> <input type="text" name="e_email" /> <input type="submit" name="e_submit" /> </form> </body> <?php if(isset($_POST["e_submit"])) { $name=(string) $_POST["e_name"]; $email=(string) $_POST["e_email"]; $source='template1.docx'; $destination='template_'.$name.'.docx'; $temp='template_'.$name.'.docx'; copy($source,$temp); $zip=new ZipArchive; $fileXml='word/document.xml'; if($zip->open($temp) === TRUE) { $old=$zip->getFromName($fileXml); $new=str_replace('{{Name}}',$name,$old); $new=str_replace('{{Email}}',$email,$new); $zip->deleteName($fileXml); $zip->addFromString($fileXml,$new); $zip->close(); header("Content-Type: application/force-download"); header('Content-Type: application/msword'); header('Content-Disposition: attachment; filename="'.$destination.'"'); readfile($destination); unlink($destination); exit(); } } ?> </html>
Phpdocx соответствует вашим потребностям. Используйте очень простой формат шаблона, основанный на $ variable $ на документах docx, поэтому очень легко работать с библиотекой. Я использую в течение нескольких месяцев, и для меня это хороший инструмент.