uykalkan/docxmustache

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


README

DocxMutache Logo

适用于 Laravel 5.8 的 DocxMustache 版本

感谢 https://github.com/wrklst/docxmustache

Software License Quality Score Build Status StyleCI

适用于 Laravel 5.8 的 docx 模板操作类,基于 mustache 模板语言。这个类目前还处于快速开发阶段,更像是一个原型,可能会快速变化并可能破坏某些东西。

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

Laravel 特定的依赖(仅在移植到非 Laravel 环境)

贡献

如果您想为此包贡献一些内容,请随时发起一个pull request以及相应的issue,我们将很乐意对其进行审查和讨论。

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

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

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

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