mrdreek / docx-merge
Fork of simple library for merging multiple MS Word ".docx" files into one
Installs: 2 332
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 27
Open Issues: 1
Requires
- php: ^8.0
- ext-simplexml: *
Requires (Dev)
- phpunit/phpunit: ^9
README
orginal https://github.com/krustnic/DocxMerge
DocxMerge
Simple library for merging multiple MS Word ".docx" files into one
Features
- Create valid docx for MS Office 2007 and above
Details
- For working with docx's ZIP I'm using TbsZip
Install
composer require mrdreek/docx-merge
Merge Example
require "vendor/autoload.php"; use DocxMerge\DocxMerge; $dm = new DocxMerge(); $dm->merge(["templates/TplPage1.docx", "templates/TplPage2.docx"], "/tmp/result.docx" );
Merge Example with page breaks
each new file will be from a new page
require "vendor/autoload.php"; use DocxMerge\DocxMerge; $dm = new DocxMerge(); $dm->merge(["templates/TplPage1.docx", "templates/TplPage2.docx"], "/tmp/result.docx", true );
setValues Example
// Use "${NAME}" in docx file to create placeholders require "vendor/autoload.php"; use DocxMerge\DocxMerge; $dm = new DocxMerge(); $dm->setValues("templates/template.docx", "templates/result.docx", array("NAME" => "Sterling", "SURNAME" => "Archer")); // Or with styles ("bold", "italic", "underline"): $dm->setValues("templates/template.docx", "templates/result.docx", [ "NAME" => [ [ "value" => "Sterling", "decoration" => ["bold", "italic"] ], [ "value" => "Archer", "decoration" => ["bold", "underline"] ] ] ] );