Gratis PHP-bibliotheek om sjabloongebaseerde DOCX-bestanden te maken & beheren
Leidende open source PHP-bibliotheek maakt het mogelijk om Microsoft Word (DOCX) documenten te maken, lezen, wijzigen en manipuleren vanuit sjablonen. Voeg tabellen toe, tekst en afbeeldingen in & pas opmaak toe via gratis PHP API
Wat is MDword?
In de wereld van Golang-ontwikkeling is het omgaan met Microsoft Word-documenten (.docx) historisch gezien een uitdaging geweest. Veel bestaande bibliotheken zijn ofwel beperkt tot \"write-only\" functionaliteit of hebben een hoge commerciële prijs. Go-Docx (onderhouden door fumiama) overbrugt deze kloof als een van de meest functionele, open‑source bibliotheken die ontworpen zijn om zowel ECMA-376 Office Open XML‑bestanden te lezen als te schrijven. Het is nuttig omdat het een high‑level API biedt die de complexe XML‑structuren onderliggende Word‑bestanden abstraheert.
Wat Go-Docx onderscheidt, is zijn uitgebreide functieset: tekstformattering (kleur, grootte, uitlijning), afbeeldingsinvoeging, tabelmanipulatie, vormen, canvassen en groepen. Of je nu facturen genereert, cv's parseert of rapportgeneratie automatiseert, deze bibliotheek verwerkt complexe Office Open XML (ECMA-376) structuren zonder de overhead van het aanroepen van externe applicaties. Het is een community‑gedreven fork die aanzienlijk is geëvolueerd ten opzichte van zijn voorgangers. In tegenstelling tot commerciële alternatieven zoals UniOffice (dat betaling vereist voor volledige functionaliteit), blijft Go-Docx volledig gratis onder de AGPL‑3.0 licentie.
Aan de slag met MDword
De aanbevolen manier om Go-Docx in je project te integreren is door GitHub te gebruiken. Gebruik alstublieft de volgende opdracht voor een soepele installatie.
Installeer MDword via Composer
composer require mkdreams/mdword Installeer MDword via GitHub
git clone https://github.com/mkdreams/MDword.git
Sjabloongebaseerde Word-documentgeneratie via PHP
Go-Docx stelt je in staat om complexe documenten vanaf nul te maken met een gestructureerde aanpak. Het verzorgt de initialisatie van de documentomgeving, inclusief standaardthema's en -stijlen, waardoor je gegenereerde bestanden volledig compatibel zijn met Microsoft Word en andere moderne processors. Hier is een eenvoudig voorbeeld dat laat zien hoe je een Word Docx-bestand genereert binnen Go‑apps.
Hoe maak je een sjabloongebaseerd Word (.docx) document via PHP-bibliotheek?
require_once 'vendor/autoload.php';
use MDword\WordProcessor;
// Load a template
$template = new WordProcessor();
$template->load('template.docx');
// Replace placeholders
$template->setValue('{{NAME}}', 'John Doe');
$template->setValue('{{DATE}}', date('Y-m-d'));
// Save the modified document
$template->save('output.docx');
Word-teksttoevoeging & opmaak via PHP
In tegenstelling tot veel concurrenten blinkt de open source Go-Docx-bibliotheek uit in het lezen van bestaande bestanden. Het kan een .docx-bestand parseren en door de inhoudsitems, zoals alinea's en tabellen, itereren. Dit maakt het een ideale keuze voor data‑extractie of document‑audit taken waarbij je de inhoud programmatically moet analyseren. Het volgende voorbeeld laat zien hoe software‑ontwikkelaars Word‑documenten kunnen parseren binnen hun eigen Go‑applicaties.
Hoe tekst invoegen in een Word-document en opmaak toepassen via PHP-bibliotheek?
require 'vendor/autoload.php';
use Mkdreams\MDword\MDword;
use Mkdreams\MDword\Elements\TextRun;
use Mkdreams\MDword\Elements\Paragraph;
$mdword = new MDword();
$section = $mdword->createSection(); // Sections are often containers for content
// Add a simple paragraph
$paragraph1 = new Paragraph();
$paragraph1->addText('This is a simple paragraph.');
$section->addElement($paragraph1);
// Add a paragraph with formatted text
$paragraph2 = new Paragraph();
$textRun1 = new TextRun();
$textRun1->setText('This text is ');
$paragraph2->addElement($textRun1);
$textRun2 = new TextRun();
$textRun2->setText('bold and red.');
$textRun2->setFontStyle(['bold' => true, 'color' => 'FF0000']); // Color as hex
$paragraph2->addElement($textRun2);
$section->addElement($paragraph2);
// Add text with specific font and size
$paragraph3 = new Paragraph();
$textRun3 = new TextRun();
$textRun3->setText('This is Arial, size 16.');
$textRun3->setFontStyle(['name' => 'Arial', 'size' => 16]);
$paragraph3->addElement($textRun3);
$section->addElement($paragraph3);
$mdword->save('FormattedTextDocument.docx');
echo "Formatted document created.";
Tabellen toevoegen & beheren in Word-bestanden via PHP
Fijne controle over typografie is een kernsterkte van deze open source Go‑bibliotheek. Je kunt de tekstkleur, lettergrootte, uitlijning aanpassen en zelfs hyperlinks of tabstops toevoegen via Go-Docx. Dit stelt ontwikkelaars in staat om professionele, merkgebonden documenten te genereren die voldoen aan specifieke ontwerpvereisten zonder handmatige tussenkomst.
Hoe tabellen maken en beheren in Word DOCX-documenten via PHP-bibliotheek?
require 'vendor/autoload.php';
use Mkdreams\MDword\MDword;
use Mkdreams\MDword\Elements\Table;
use Mkdreams\MDword\Elements\Row;
use Mkdreams\MDword\Elements\Cell;
use Mkdreams\MDword\Elements\TextRun;
$mdword = new MDword();
$section = $mdword->createSection();
// Create a table
$table = new Table();
// Potentially add table-level styling, e.g., borders
// $table->setStyle(['borderSize' => 6, 'borderColor' => '000000']);
// Add a header row
$headerRow = new Row();
$cellH1 = new Cell();
$cellH1->addTextRun(new TextRun('Header 1', ['bold' => true]));
$headerRow->addCell($cellH1);
$cellH2 = new Cell();
$cellH2->addTextRun(new TextRun('Header 2', ['bold' => true]));
$headerRow->addCell($cellH2);
$table->addRow($headerRow);
// Add a data row
$dataRow1 = new Row();
$cellR1C1 = new Cell();
$cellR1C1->addTextRun(new TextRun('Data A1'));
$dataRow1->addCell($cellR1C1);
$cellR1C2 = new Cell();
$cellR1C2->addTextRun(new TextRun('Data B1'));
$dataRow1->addCell($cellR1C2);
$table->addRow($dataRow1);
$section->addElement($table);
$mdword->save('DocumentWithTable.docx');
echo "Document with table created.";