mrdreek/docx-merge

Fork of simple library for merging multiple MS Word ".docx" files into one

v1.2.0 2021-04-23 15:01 UTC

This package is auto-updated.

Last update: 2024-04-23 21:23:00 UTC


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"]
                ]
            ]
        ]
    );