aramirez92/docxmustache

基于 mustache 模板语言的 docx 模板操作类

v0.0.33 2019-10-26 08:57 UTC

README

DocxMutache Logo

DocxMustache for Laravel 6.0.

Software License Quality Score Build Status StyleCI

基于 mustache 模板语言的 Laravel 6.0 的 docx 模板操作类。此类目前仍在开发中,更像是一个概念验证,事物将会快速变化,可能会破坏某些功能。

Word 中的模板示例 此包可以帮助您使用具有 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 依赖之外,页面还使用了以下包

Laravel 特定的依赖项(如果移植到非 Laravel 环境)

贡献

如果您想为此包贡献一些内容,请随时发起拉取请求和相应的 issue,我们将非常乐意进行审查和讨论。

为什么还需要另一个 openXML / docx 模板解决方案?

市面上有一些类可以帮助编写和或更改文档内容,有些是商业许可证,有些是免费的。对于我们的特定目的,我们不需要大多数库所提供的功能——我们需要一个简单的解决方案,允许替换值和图片,并以简单直接的方式遍历数据。

许多其他库使用克隆来重复带有自定义模板语法的块,而不是使用现有的模板语法。我们使用常见的 mustache 语法,也可以在需要的任何维度上重复内容。

其他用于操作 openXML 文档的 PHP 类