aramirez92 / docxmustache
基于 mustache 模板语言的 docx 模板操作类
Requires
- php: >=7.1.0
- intervention/image: ^2.5
- mustache/mustache: ^2.12
- wrklst/zipper: ^1.0
- dev-master
- 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-09 10:31:45 UTC
README
DocxMustache for Laravel 6.0.
基于 mustache 模板语言的 Laravel 6.0 的 docx 模板操作类。此类目前仍在开发中,更像是一个概念验证,事物将会快速变化,可能会破坏某些功能。
此包可以帮助您使用具有 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(需要将 提供者和别名 添加到您的应用程序配置中,以及 gd 或 imagick,请查看 图像干预网页的详细信息)
Laravel 特定的依赖项(如果移植到非 Laravel 环境)
- 基于 Flysystem 的 Storage 和 File 类(用于本地文件访问,也可以用 phps 自己的 fopen 等 method 替换)
- \Symfony\Component\Process\Process(仅用于 PDF 转换)
贡献
如果您想为此包贡献一些内容,请随时发起拉取请求和相应的 issue,我们将非常乐意进行审查和讨论。
为什么还需要另一个 openXML / docx 模板解决方案?
市面上有一些类可以帮助编写和或更改文档内容,有些是商业许可证,有些是免费的。对于我们的特定目的,我们不需要大多数库所提供的功能——我们需要一个简单的解决方案,允许替换值和图片,并以简单直接的方式遍历数据。
许多其他库使用克隆来重复带有自定义模板语法的块,而不是使用现有的模板语法。我们使用常见的 mustache 语法,也可以在需要的任何维度上重复内容。
其他用于操作 openXML 文档的 PHP 类
- openTBS - 小巧但强大
- PHPWord
- docxtemplater pro(截至写作时,有基本开源/免费版本/ MIT 许可证;图像替换是商业插件)
- docxpresso(商业)
- phpdocx(商业)