Класс манипуляции шаблонами Docx для Laravel 10.x, основанный на языке шаблонов усов. Этот класс все еще находится в стадии активной разработки и на данный момент работает скорее как доказательство концепции. Все быстро изменится и может что-то сломать.
Этот пакет поможет вам использовать файлы docx с синтаксисом усов в качестве шаблонов для объединения документов с богатым стилем с информацией из любого источника данных. Он может заменять текст и изображения и поддерживает основные стили HTML (жирный, курсив, подчеркивание).
composer require wrklst/ docxmustache
Пожалуйста, проверьте зависимости ниже и папку примеров для настройки и использования.
Текущее преобразование HTML является базовым и поддерживает только отдельные фрагменты жирного, курсива и подчеркнутого текста, но не их комбинацию. Требуется, чтобы все значения, отличные от html, были экранированы с помощью htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
и префикс *[[DONOTESCAPE]]*
, чтобы класс знал, что не следует экранировать HTML-код до его преобразования в openXML.
Изображение должно представлять собой доступный URL-адрес с изображением в поддерживаемом формате. Значение URL необходимо поместить в поле описания альтернативного текста изображения. Изображения будут преобразованы в соответствии с ограничениями изображения-заполнителя. Значение изображения необходимо форматировать с помощью псевдотегов, например: [IMG-REPLACE]http://placehold.it/350x150[/IMG-REPLACE]
Пожалуйста, также ознакомьтесь с примером в папке примеров, чтобы получить общее представление о том, как использовать этот класс.
Для преобразования в PDF требуется установка libreoffice-common
на сервере (используется для преобразования). Используйте sudo apt install libreoffice-common
на вашем сервере на базе Ubuntu/Debian. Также установите ttf-mscorefonts, если вам нужна поддержка шрифта Arial при преобразовании документов docx в PDF sudo apt-get install ttf-mscorefonts-installer
Пакет зависит от нескольких специфических функций Laravel. Его можно легко перенести на другие платформы или сделать независимым от платформы. Помимо зависимости Laravel, на странице используются следующие пакеты:
Специфические зависимости Laravel (актуально только в том случае, если они перенесены в среду, отличную от Laravel):
Если вы хотите внести свой вклад в этот пакет, пожалуйста, отправьте запрос на включение и соответствующую проблему, и мы будем рады рассмотреть и обсудить.
Есть несколько классов, которые помогают писать и/или изменять содержимое текстовых документов, некоторые с коммерческими лицензиями, а некоторые бесплатные. Для нашей конкретной цели нам не требовалось большинство функций, которые есть во многих библиотеках — нам нужно было простое решение, которое позволило бы заменять значения и изображения и перемещаться по данным простым и понятным способом.
Многие другие библиотеки используют клонирование для повторения блока с использованием специального синтаксиса шаблонов вместо использования существующего синтаксиса шаблонов. Мы используем обычный синтаксис усов, чтобы добиться повторения контента в необходимом количестве измерений.
Другие классы PHP для управления текстовыми документами openXML: