Подтолкните в сторону решения следующей задачи:
Есть вордовский документ-шаблон, лежащий на сервере, в котором в тексте прописаны определенны метки, к примеру {name}.
Как можно заменить их на значения, вводимые в поля ноды, с последующим скачиванием заполненного шаблона?
Замена меток в docx
Главные вкладки
Лучший ответ
Да, docx - это xml внутри zip'а. Можно распаковать его, изменить, и запаковать обратно без использования сторонних библиотек.
Комментарии
"распарсить" шаблон какой либо библиотекой для работы с docx-форматами документов.
А вообще, docx - это банальный xml определенной структуры, завернутый в zip.
теоретически, можно на базе подобного документа сделать twig-шаблон для нужной ноды.
заполнять его стандартно и отдавать браузеру завернув в zip.
Думаю, должны быть готовые библиотеки-модули для подобных действий.
Да, docx - это xml внутри zip'а. Можно распаковать его, изменить, и запаковать обратно без использования сторонних библиотек.
Ребят, вы видели этот "распакованный" XML? Не такой уж он и банальный )))
Я когда-то PHPWord'ом подменял, но давно было, и исходников уже нет.
phpWordoм тоже делал, только на 7ке.. тут в 8ке выпилили php, поэтому данный метод уже не канает..
Штаааа?
PHP-filter, наверное, имелся ввиду)
Я бы посмотрел, как в семёрке через пхп-фильтр по psr-4 классы грузят)))))
Я думаю, ты и не такое видел)
А что там не банального, теги они и в Африке теги..-)
даже не так - текст он и в Африке текст.
Даже наверное twig-конструкции вывод переменных ( {{name}} и т.п. можно будет прямо в docx-шаблоне вставлять в нужные места-)
Жесть... )) Вместо использования "нормальных" инструментов - городить непонятно-что.
А если изменить нужно шаблон? Снова все проделываем?
docx - это набор отборнейших XML-файлов, написанных машинами, для машин.
Ну это просто один из вариантов сделать "генерацию" docx-файлов без лишних библиотек, так сказать, только силами drupal-ядра.
Хм.. возможно мне скоро пригодиться..-)
Зловеще звучит-)
Что, машины вот так взяли и всё сами написали?-)
Работал я с OpenXML.. ничего невозможного для "не машины" нет..
Прочитал спецификацию и вперед.
Тем более что в предложенном варианте xml совсем не нужен..
Просто заменить twig-"токены" на значения стандартными возможностями Drupal 8.
Ну... Успехов!
Вообще-то прямо в ядре восьмерки есть вполне годные xml-декодер и xml-энкодер от Symfony. Можно одной практически строчкой вогнать xml-файл в php-массив, найти и заменить что нужно, и выгнать обратно в xml. Зачем тут twig-то?