Я пытаюсь собрать создатель форматов. Я хочу загрузить слово от клиента, у которого есть некоторые директивы ветки, такие как {{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> </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> </p>
<p> </p>
<p> </p>
</body>
</html>
Дело в том, что визуализированный файл html имеет стили между фигурными фигурных скобок, я хотел бы каким-то образом указать PHPWord
игнорировать строки с двойными фигурными скобками, потому что я хочу, чтобы они были непонятными для процессора шаблонов веток, чтобы заменить их данными, которые я ему передам.
Я даже не знаю, правильный ли этот подход, поэтому я полностью открыт для любых предложений, я был бы очень признателен