модификация шаблона php docx [закрыто]


У кого-нибудь был опыт редактирования шаблона docx. Моя область администрирования php нуждается в функциональности для изменения шаблонов docx, эта функциональность будет часто использоваться, поэтому важна память.

Я нашел phpword, который находится в бета-версии, он работает, но не на 100%

Я погуглил и нашел phpdocx, кто-нибудь использовал это и может дать мне некоторые отзывы?

Существуют ли какие-либо другие решения, все, что мне нужно, - это возможность изменять текст и, возможно, изображение в docx шаблон.

Я буду готов заплатить за услугу, но не массово, и было бы предпочтительнее единовременную плату за лицензию.

Author: Shankar Damodaran, 2011-10-24

4 answers

Вам следует попробовать OpenTBS.

Это PHP-библиотека с открытым исходным кодом, которая создает DOCX с использованием шаблонов.

Нет временного каталога, не требуется дополнительный exe-файл. Сначала создайте свой DOCX, XLSX, PPTX с помощью Ms Office (также поддерживаются ODT, ODS, ODP, это файлы OpenOffice). Затем вы используете OpenTBS для загрузки шаблона и изменения содержимого с помощью механизма шаблонов (легко, см. демонстрацию). В конце вы сохраняете результат там, где вам нужно. Это может быть новый файл, загрузка поток, двоичная строка PHP.

OpenTBS также может изменять изображения и диаграммы в документе.

 9
Author: Skrol29, 2016-01-26 23:57:50

Шаблон 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');
 1
Author: Sergey Shuchkin, 2013-09-18 06:30:11
<!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>
 1
Author: user8057921, 2017-05-24 10:41:58

Phpdocx соответствует вашим потребностям. Используйте очень простой формат шаблона на основе переменной $$ в документах docx, чтобы очень легко работать с библиотекой. Я пользуюсь им уже несколько месяцев и для меня это хороший инструмент.

 0
Author: Camix, 2011-10-24 15:04:27