1. Go to this page and download the library: Download mkgrow/docx-merge library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mkgrow / docx-merge example snippets
use DocxMerge\DocxMerger;
$merger = new DocxMerger();
$result = $merger->merge(
templatePath: '/path/to/template.docx',
merges: [
'INTRODUCTION' => '/path/to/intro.docx',
'CONCLUSION' => '/path/to/conclusion.docx',
],
outputPath: '/path/to/output.docx',
);
if ($result->success) {
echo "Merged {$result->stats['markers_replaced']} markers in {$result->executionTime}s\n";
}
use DocxMerge\DocxMerger;
$merger = new DocxMerger();
$result = $merger->merge(
templatePath: '/templates/report.docx',
merges: [
'CONTENT' => '/sources/content.docx',
],
outputPath: '/output/report.docx',
);
use DocxMerge\DocxMerger;
use DocxMerge\Dto\MergeDefinition;
$merger = new DocxMerger();
$result = $merger->merge(
templatePath: '/templates/book.docx',
merges: [
'CHAPTER_ONE' => new MergeDefinition(
markerName: 'CHAPTER_ONE',
sourcePath: '/sources/chapters.docx',
sectionIndex: 0,
),
'CHAPTER_TWO' => new MergeDefinition(
markerName: 'CHAPTER_TWO',
sourcePath: '/sources/chapters.docx',
sectionIndex: 1,
),
],
outputPath: '/output/book.docx',
);
use DocxMerge\Dto\MergeOptions;
$options = new MergeOptions(strictMarkers: true);
$result = $merger->merge($template, $merges, $output, $options);
use DocxMerge\Dto\MergeOptions;
// Match {{MARKER}} instead of ${MARKER}
$options = new MergeOptions(
markerPattern: '/\{\{([A-Z_][A-Z0-9_]*)\}\}/',
);
use DocxMerge\Dto\MergeOptions;
// First pass
$merger->merge($template, ['HEADER' => $header], $output);
// Second pass: merge more markers into the same output
$options = new MergeOptions(isReprocessing: true);
$merger->merge($template, ['FOOTER' => $footer], $output, $options);
use DocxMerge\DocxMerger;
use DocxMerge\Exception\InvalidTemplateException;
use DocxMerge\Exception\InvalidSourceException;
use DocxMerge\Exception\MarkerNotFoundException;
use DocxMerge\Exception\DocxMergeException;
$merger = new DocxMerger();
try {
$result = $merger->merge($template, $merges, $output);
} catch (InvalidTemplateException $e) {
// Template file not found or not a valid DOCX
} catch (InvalidSourceException $e) {
// Source file invalid or section index out of bounds
} catch (MarkerNotFoundException $e) {
// Marker not found (only when strictMarkers is true)
} catch (DocxMergeException $e) {
// Any other library error (XmlParseException, ZipOperationException, MergeException)
}
use DocxMerge\DocxMerger;
use Psr\Log\LoggerInterface;
/** @var LoggerInterface $logger Your application's logger */
$merger = new DocxMerger(logger: $logger);
$result = $merger->merge($template, $merges, $output);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.