uykalkan / docxmustache
基于 mustache 模板语言的 docx 模板操作类
Requires
- php: >=5.3.0
- chumper/zipper: ^1.0
- illuminate/support: ^5.0
- intervention/image: ^2.4
- mustache/mustache: ^2.12
- dev-master
- 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 not auto-updated.
Last update: 2024-09-25 12:37:48 UTC
README
适用于 Laravel 5.8 的 DocxMustache 版本
感谢 https://github.com/wrklst/docxmustache
适用于 Laravel 5.8 的 docx 模板操作类,基于 mustache 模板语言。这个类目前还处于快速开发阶段,更像是一个原型,可能会快速变化并可能破坏某些东西。
此软件包可以帮助您使用 mustache 语法作为模板来合并带有信息的数据源的丰富样式文档。它可以替换文本和图片,并支持基本的 HTML 样式(粗体、斜体、下划线)。
安装
composer require uykalkan/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
- chumper/zipper
- intervention/image(需要将 provider 和 alias 添加到您的应用程序配置中,以及 gd 或 imagick,请查阅图像干预网页的详细信息)
Laravel 特定的依赖(仅在移植到非 Laravel 环境)
- 基于 Flysystem 的 Storage 和 File 类(用于本地文件访问,也可以用 php 的 fopen 等 method 替换)
- \Symfony\Component\Process\Process(仅用于 PDF 转换)
贡献
如果您想为此包贡献一些内容,请随时发起一个pull request以及相应的issue,我们将很乐意对其进行审查和讨论。
为什么还需要另一个openXML / docx模板解决方案?
目前市面上有一些类可以帮助编写或更改Word文档的内容,有些带有商业许可,有些是免费的。对于我们特定的需求,我们并不需要大多数库提供的功能——我们需要一个简单的解决方案,允许替换值和图像,并且以简单直接的方式遍历数据。
许多其他库使用克隆来重复带有自定义模板语法的块,而不是使用现有的模板语法。我们使用常规的mustache语法,也可以在需要的情况下在多个维度上重复内容。
其他用于操作openXML Word文档的PHP类
- openTBS - 小巧但强大
- PHPWord
- docxtemplater pro(截至写作时,有基本开源/免费版本/MIT许可;图像替换是一个商业插件)
- docxpresso(商业)
- phpdocx(商业)