Kostenlose PHP-Bibliothek zum Erstellen & Verwalten templatebasierter DOCX-Dateien
Führende Open-Source-PHP-Bibliothek, die das Erstellen, Lesen, Ändern und Bearbeiten von Microsoft Word (DOCX)-Dokumenten aus Vorlagen ermöglicht. Füge Tabellen hinzu, füge Text und Bilder ein und wende Formatierungen über die kostenlose PHP-API an
Was ist MDword?
In der Welt der Golang-Entwicklung war das Handling von Microsoft Word-Dokumenten (.docx) historisch gesehen eine Herausforderung. Viele vorhandene Bibliotheken sind entweder auf "nur Schreiben"-Funktionalität beschränkt oder haben ein hohes kommerzielles Preisschild. Go-Docx (gepflegt von fumiama) schließt diese Lücke als eine der funktionalsten Open-Source-Bibliotheken, die sowohl das Lesen als auch das Schreiben von ECMA-376 Office Open XML-Dateien ermöglicht. Es ist nützlich, weil es ein High-Level-API bereitstellt, das die komplexen XML-Strukturen, die Word-Dateien zugrunde liegen, abstrahiert.
Was Go-Docx auszeichnet, ist sein umfassendes Funktionsset: Textformatierung (Farbe, Größe, Ausrichtung), Bildeinfügung, Tabellenmanipulation, Formen, Leinwände und Gruppen. Egal, ob Sie Rechnungen erstellen, Lebensläufe parsen oder die Berichtserstellung automatisieren, diese Bibliothek verarbeitet komplexe Office Open XML (ECMA-376)-Strukturen, ohne den Overhead externer Anwendungen. Es ist ein community-getriebener Fork, der sich signifikant von seinen Vorgängern entwickelt hat. Im Gegensatz zu kommerziellen Alternativen wie UniOffice (die eine Zahlung für volle Funktionen erfordert) bleibt Go-Docx vollständig kostenlos unter der AGPL-3.0-Lizenz.
Erste Schritte mit MDword
Der empfohlene Weg, Go-Docx in Ihr Projekt zu integrieren, ist über GitHub. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.
Installiere MDword via Composer
composer require mkdreams/mdword Wie erstelle ich ein templatebasiertes Word (.docx)-Dokument über die PHP-Bibliothek?
git clone https://github.com/mkdreams/MDword.git
Templatebasierte Word-Dokumenterstellung via PHP
Go-Docx ermöglicht es Ihnen, komplexe Dokumente von Grund auf mit einem strukturierten Ansatz zu erstellen. Es übernimmt die Initialisierung der Dokumentenumgebung, einschließlich Standard-Themen und -Stile, und stellt sicher, dass Ihre erzeugten Dateien vollständig mit Microsoft Word und anderen modernen Prozessoren kompatibel sind. Hier ist ein einfaches Beispiel, das zeigt, wie man eine Word-Docx-Datei in Go-Anwendungen generiert.
Wie füge ich Text in ein Word-Dokument ein und wende Formatierung über die PHP-Bibliothek an?
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');
Hinzufügen von Text zu Word & Formatierung via PHP
Im Gegensatz zu vielen Wettbewerbern glänzt die Open-Source-Go-Docx-Bibliothek beim Lesen vorhandener Dateien. Sie kann eine .docx-Datei parsen und durch ihre Inhaltselemente, wie Absätze und Tabellen, iterieren. Das macht sie zur idealen Wahl für Datenextraktion oder Dokumenten-Audit-Aufgaben, bei denen Sie Inhalte programmgesteuert analysieren müssen. Das folgende Beispiel zeigt, wie Softwareentwickler Word-Dokumente in ihren eigenen Go-Anwendungen parsen können.
Wie erstelle und verwalte ich Tabellen in Word DOCX-Dokumenten über die PHP-Bibliothek?
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 hinzufügen & verwalten in Word-Dateien via PHP
Feinkörnige Kontrolle über Typografie ist eine zentrale Stärke dieser Open-Source-Go-Bibliothek. Sie können Textfarbe, Schriftgröße, Ausrichtung ändern und sogar Hyperlinks oder Tabstopps über Go-Docx hinzufügen. Das ermöglicht Entwicklern, professionelle, gebrandete Dokumente zu erzeugen, die spezifischen Designanforderungen entsprechen, ohne manuellen Eingriff.
How to Create and Manage Tables inside Word DOCX Documents via PHP Library?
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.";