ownercoder / ru-php-stamp
一个用于基于XML的Office文档的XSL样式模板库。支持MS Word docx格式。
0.1.6
2017-12-25 05:16 UTC
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-16 03:32:15 UTC
README
PHPStamp是一个简单的PHP模板库,用于基于XML的Microsoft Word文档。
库旨在提供原生的XML模板方式,作为将DOM文档作为字符串进行正则替换的替代方案,后者有很多缺点。
基本上,它试图清理混乱的WYSIWYG生成的代码,并从文档中创建可重用的XSL样式表。
一些附加信息
(英文) https://redd.it/30conp
(俄语) http://habrahabr.ru/post/244421/
功能
- 当前版本支持Microsoft Office OpenXML DOCX格式。
- 可配置标签占位符的括号。
- 基本扩展系统,有助于生成内容块,如单元格或列表项。
- 将XSL模板缓存到文件系统。
要求
库需要PHP 5.3+,并且启用DOM、XSL和Zip扩展。
还依赖于doctrine2/Lexer
包。
安装
使用Composer安装。
composer require shadz3rg/php-stamp
或
{ "require": { "shadz3rg/php-stamp": "0.1.*" } }
用法
模板。
<?php require 'vendor/autoload.php'; use PHPStamp\Templator; use PHPStamp\Document\WordDocument; $cachePath = 'path/to/writable/directory/'; $templator = new Templator($cachePath); $documentPath = 'path/to/document.docx'; $document = new WordDocument($documentPath); $values = array( 'library' => 'PHPStamp 0.1', 'simpleValue' => 'I am simple value', 'nested' => array( 'firstValue' => 'First child value', 'secondValue' => 'Second child value' ), 'header' => 'test of a table row', 'students' => array( array('id' => 1, 'name' => 'Student 1', 'mark' => '10'), array('id' => 2, 'name' => 'Student 2', 'mark' => '4'), array('id' => 3, 'name' => 'Student 3', 'mark' => '7') ), 'maxMark' => 10, 'todo' => array( 'TODO 1', 'TODO 2', 'TODO 3' ) ); $result = $templator->render($document, $values); $result->download();