Преобразование файла Word в Twig с соблюдением директив Twig - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь собрать создатель форматов. Я хочу загрузить слово от клиента, у которого есть некоторые директивы ветки, такие как {{variables}}, а затем отобразить их на моем сервере с помощью Symfony 2 и передать ему некоторые значения, чтобы директивы, такие как {{name}}, были заменены данными, которые я передаю к нему, как к обычному процессу рендеринга ветки.

Word файл, который я пытаюсь преобразовать прямо сейчас

Hi I’m a Word file and this is a variable.

{{variable}}

Ничего особенного.

Я использую PHPWord и у меня есть следующий код:

use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\Writer\HTML;

if ($filePath)
    $word = IOFactory::load($filePath);

$twigName = 'formats/'.$name.'.html.twig';
$htmlWriter = new HTML($word);
$htmlWriter->save($twigName);

$renderedHTMLPath = realpath($appPath . '/../web/' . $twigName);
$renderedTwig = $this->render($renderedHTMLPath, $params)

Это визуализированный HTML

<!DOCTYPE html>
<!-- Generated by PHPWord -->
<html>
   <head>
      <meta charset="UTF-8" />
      <title>PHPWord</title>
      <style>
         * {
            font-family: Arial;
             font-size: 11pt;
        }
         a.NoteRef {
            text-decoration: none;
        }
         hr {
            height: 1px;
             padding: 0;
             margin: 1em 0;
             border: 0;
             border-top: 1px solid #CCC;
        }
         table {
            border: 1px solid black;
             border-spacing: 0px;
             width : 100%;
        }
         td {
            border: 1px solid black;
        }
         .Normal {
            margin-bottom: 8pt;
        }
         .List Paragraph {
            margin-top: 0;
             margin-bottom: 0;
        }

      </style>
   </head>
   <body>
      <p style="margin-bottom: 0pt;"><span style="font-family: 'Times New Roman';">Hi </span><span style="font-family: 'Times New Roman';">I’m</span><span style="font-family: 'Times New Roman';"> a W</span><span style="font-family: 'Times New Roman';">ord file and </span><span style="font-family: 'Times New Roman';">this</span><span style="font-family: 'Times New Roman';"> </span><span style="font-family: 'Times New Roman';">is</span><span style="font-family: 'Times New Roman';"> a variable.</span></p>
      <p>&nbsp;</p>
      <!-- This is the important line, there is where I want the curly braces to stay together to be undestadable for the twig templating process -->
      <p style="margin-bottom: 0pt;"><span style="font-family: 'Times New Roman';">{</span><span style="font-family: 'Times New Roman';">{</span><span style="font-family: 'Times New Roman';">variable</span><span style="font-family: 'Times New Roman';">}</span><span style="font-family: 'Times New Roman';">}</span></p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
   </body>
</html>

Дело в том, что визуализированный файл html имеет стили между фигурными фигурных скобок, я хотел бы каким-то образом указать PHPWord игнорировать строки с двойными фигурными скобками, потому что я хочу, чтобы они были непонятными для процессора шаблонов веток, чтобы заменить их данными, которые я ему передам.

Я даже не знаю, правильный ли этот подход, поэтому я полностью открыт для любых предложений, я был бы очень признателен

...