wrklst / docxmustache
基于mustache模板语言的docx模板操作类
Requires
- php: >=8.1
- intervention/image: ^2.7
- mustache/mustache: ^2.12
- wrklst/madzipper: ^1.5
- dev-master
- v0.0.37
- v0.0.36
- v0.0.35
- v0.0.34
- v0.0.33
- v0.0.32
- v0.0.31
- v0.0.30
- v0.0.29
- v0.0.28
- v0.0.27
- v0.0.26
- v0.0.25
- v0.0.24
- v0.0.23
- v0.0.22
- v0.0.21
- v0.0.20
- v0.0.19
- v0.0.18
- v0.0.17
- v0.0.16
- v0.0.15
- v0.0.14
- v0.0.13
- v0.0.12
- v0.0.11
- v0.0.10
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-scrutinizer-patch-4
- dev-analysis-qMawJM
- dev-analysis-qgEPn4
- dev-analysis-XVO63w
- dev-analysis-qByp9V
- dev-analysis-8PrVJ9
- dev-analysis-8mMj7a
- dev-scrutinizer-patch-3
- dev-scrutinizer-patch-2
- dev-scrutinizer-patch-1
This package is auto-updated.
Last update: 2024-09-20 16:11:38 UTC
README
适用于Laravel 10.x的DocxMustache 。
适用于Laravel 10.x的docx模板操作类,基于mustache模板语言。这个类目前还在快速发展中,更像是一个原型,可能会很快发生变化并可能破坏一些东西。
这个包可以帮助你使用具有mustache语法的docx文件作为模板,将样式丰富的文档与来自任何数据源的信息合并。它可以替换文本和图片,并支持基本的HTML样式(加粗、斜体、下划线)。
安装
composer require wrklst/docxmustache
请检查下面的依赖项和示例文件夹中的配置和使用方法。
HTML转换
当前的HTML转换是基本的,只支持加粗、斜体和下划线的单次运行,不支持这些的组合。所有非HTML的值都需要使用htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
进行转义,并在其前面加上前缀*[[DONOTESCAPE]]*
,这样类就知道在将其转换为openXML之前不要转义HTML。
替换图片
图片需要是一个可访问的URL,其中包含支持的格式的图片。URL值需要放置在图片的alt文本描述字段中。图片将被重新采样以符合占位符图片的约束。图片值需要使用伪标签格式化,例如:[IMG-REPLACE]http://placehold.it/350x150[/IMG-REPLACE]
示例
请查看示例文件夹中的示例,以了解如何使用此类的基本方法。
DOCX转换为PDF
转换为PDF需要服务器上安装libreoffice-common
(用于转换)。在基于ubuntu/debian的服务器上使用sudo apt install libreoffice-common
。如果你需要支持将docx文档转换为pdf时Arial字体,也请安装ttf-mscorefonts sudo apt-get install ttf-mscorefonts-installer
其他依赖项
此包依赖于几个Laravel特定的函数。它可以很容易地移植到其他框架或移植为不依赖于框架的版本。除了Laravel的依赖项外,页面还使用了以下包
- mustache/mustache
- intervention/image(需要在您的应用配置中添加provider和alias以及gd或imagick,请查看图像干预网页以获取详细信息)
Laravel特定的依赖项(仅当移植到非Laravel环境时相关)
- 基于Flysystem的Storage和File类(用于本地文件访问,也可以用php的自身fopen等方法替换)
- \Symfony\Component\Process\Process(仅用于PDF转换)
贡献
如果您想为此包做出贡献,请随意提交一个pull request以及相应的issue,我们将很乐意进行审查和讨论。
为什么还需要另一个openXML / docx模板解决方案?
市面上有一些类可以帮助编写和/或更改Word文档的内容,有些是商业许可证,有些是免费的。对于我们特定的目的,我们不需要很多库所具有的功能——我们需要一个简单的解决方案,允许轻松替换值和图片,并以简单直接的方式遍历数据。
许多其他库使用克隆来重复具有自定义模板语法的一个块,而不是使用现有的模板语法。我们使用常用的mustache语法,也可以在需要的情况下重复内容的多维。
其他用于操作openXML Word文档的PHP类
- openTBS – 小巧但强大
- PHPWord
- docxtemplater pro(截至编写时,有基本开源/免费版本/MIT许可证;图像替换是一个商业插件)
- docxpresso(商业)
- phpdocx(商业)