Laravel 10.x 的 Docx 模板操作类,基于 Mustache 模板语言。该类仍在大力开发中,目前更像是概念验证。事情会很快发生变化,并且可能会破坏事情。
该包可帮助您使用带有 Mustache 语法的 docx 文件作为模板,将样式丰富的文档与来自任何数据源的信息合并。它可以替换文本和图像,并支持基本的 html 样式(粗体、斜体、下划线)。
composer require wrklst/ docxmustache
请检查下面的依赖项和示例文件夹以了解配置和使用情况。
当前的 HTML 转换是基本的,仅支持粗体、斜体和下划线文本的单个运行,而不支持这些文本的组合。它要求所有非 html 值都使用htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
和*[[DONOTESCAPE]]*
前缀,以便该类知道在将 html 转换为 openXML 之前不要对其进行转义。
该图像必须是可访问的 URL,且图像格式受支持。 url 值需要放入图像的 alt 文本描述字段中。图像将根据占位符图像的约束重新采样。 Image值需要用伪标签进行格式化,例如: [IMG-REPLACE]http://placehold.it/350x150[/IMG-REPLACE]
另请查看示例文件夹中的示例,以基本了解如何使用此类。
转换为 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 环境时相关):
如果您想为此包做出一些贡献,请随时提出拉取请求和相应的问题,我们将很乐意审查和讨论。
有一些课程可以帮助编写和/或更改 Word 文档的内容,有些具有商业许可证,有些是免费的。出于我们的特定目的,我们不需要许多库所具有的大部分功能 - 我们需要一个简单的解决方案,允许以简单直接的方式替换值和图像并遍历数据。
许多其他库使用克隆来使用一些自定义模板语法来重复块,而不是使用现有的模板语法。我们使用通常的 Mustache 语法,也可以根据需要在多个维度上实现重复内容。
其他用于操作 openXML Word 文档的 PHP 类: