Перейти к основному содержанию

Использование rtf-файла в качестве шаблона

Отправлено said от пн, 02/27/2017 - 10:30

Предварительно в шаблоне rtf файла нужно расставить плейсхолдеры. В примере использую один - fio.
Далее для подставновки в rtf файл своих значений использую следующий код:

$rtf = file_get_contents(DOCUMENT_ROOT . '/template.rtf');
$placeholder1 = 'Иванов';
$fio = utf8_to_rtf($placeholder1);
$rtf = str_replace('fio', $fio, $rtf);

/**
 * Кодирование utf8 в 16 битовую кодировку
 */
function utf8_to_rtf($utf8_text) {
  $utf8_patterns = array(
    "[\xC2-\xDF][\x80-\xBF]",
    "[\xE0-\xEF][\x80-\xBF]{2}",
    "[\xF0-\xF4][\x80-\xBF]{3}",
  );
  $new_str = $utf8_text;
  foreach($utf8_patterns as $pattern) {
    $new_str = preg_replace("/($pattern)/e", "'\u'.hexdec(bin2hex(mb_convert_encoding('$1', 'UTF-16', 'UTF-8'))).'?'", $new_str);
  }
  return $new_str;
}

 

Теги