Не удалось создать файлы RTF из файла шаблона RTF - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь заменить кодированный текст, присутствующий в файле шаблона, на соответствующий ему текст, например Пол на Женский. После этого новый файл должен быть загружен. Приведенный ниже код работает нормально для документов MS Word, но не работает для файлов RTF.

public function temp()
{   
    $name='Nida Amin';
    $class = 'M.C.A';
    $school = 'Kashmir University';
    $gender = 'Female';

    $source='Template.rtf';
    $destination='template_'.$name.'.rtf';
    $temp='template_'.$name.'.rtf';

    copy($source,$temp);

    $zip= new ZipArchive;

    $fileXml='word/document.xml';
    if($zip->open($temp) === TRUE)
    {
        $old=$zip->getFromName($fileXml);
        $new=str_replace("**Student Name**",$name,$old);
        $new=str_replace("**Class**",$class,$new);
        $new=str_replace("**Gender**",$gender,$new);
        $new=str_replace("**School**",$school,$new);

        $zip->deleteName($fileXml);
        $zip->addFromString($fileXml,$new);
        $zip->close();

        header("Content-Type: application/force-download");
        header('Content-Type: application/rtf');
        header('Content-Disposition: attachment; filename="'.$destination.'"');

       readfile($destination);
       unlink($destination);
       exit();
    }
}

Я твердо убежден, что проблема связана с $ fileXml = 'word / document. xml'; линия. Я не могу найти, что дать в этой строке для файлов RTF. В основном я пытаюсь найти способ сделать несколько файлов из одного файла шаблона без изменения оригинального формата (цвет, стили шрифтов, изображения) текста в файле. Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...