Gratis PHP-bibliotek til at oprette & administrere skabelonbaserede DOCX-filer

Førende Open Source PHP-bibliotek, der giver mulighed for at oprette, læse, ændre og manipulere Microsoft Word (DOCX)-dokumenter fra skabeloner. Tilføj tabeller, indsæt tekst, billeder & anvend formatering via gratis PHP API

Hvad er MDword?

I verden af Golang-udvikling har håndtering af Microsoft Word-dokumenter (.docx) historisk set været en udfordring. Mange eksisterende biblioteker er enten begrænset til kun skrive-funktionalitet eller har en høj kommerciel pris. Go-Docx (vedligeholdt af fumiama) udfylder dette hul som et af de mest funktionelle open-source biblioteker designet til både at læse og skrive ECMA-376 Office Open XML-filer. Det er nyttigt, fordi det leverer et højniveau-API, der abstraherer de komplekse XML-strukturer, der ligger under Word-filer.

Hvad der får Go-Docx til at skille sig ud, er dets omfattende funktionssæt: tekstformatering (farve, størrelse, justering), billedindsættelse, tabelmanipulation, former, lærreder og grupper. Uanset om du genererer fakturaer, parser CV'er eller automatiserer rapportgenerering, håndterer dette bibliotek komplekse Office Open XML (ECMA-376) strukturer uden omkostninger ved at kalde eksterne programmer. Det er en community-drevet fork, som har udviklet sig betydeligt fra sine forgængere. I modsætning til kommercielle alternativer som UniOffice (som kræver betaling for fulde funktioner), forbliver Go-Docx fuldstændig gratis under AGPL-3.0-licensen.

Previous Next

Kom i gang med MDword

Den anbefalede måde at få Go-Docx ind i dit projekt på er ved at bruge GitHub. Brug venligst følgende kommando for en problemfri installation.

Installer MDword via Composer

composer require mkdreams/mdword  

Installer MDword via GitHub

git clone https://github.com/mkdreams/MDword.git 

Skabelonbaseret generering af Word-dokumenter via PHP

Go-Docx giver dig mulighed for at oprette komplekse dokumenter fra bunden ved hjælp af en struktureret tilgang. Det håndterer initialiseringen af dokumentmiljøet, inklusive standardtemaer og -stile, så dine genererede filer er fuldt kompatible med Microsoft Word og andre moderne processorer. Her er et simpelt eksempel, der viser, hvordan man genererer en Word Docx-fil i Go-applikationer.

Hvordan opretter man et skabelonbaseret Word (.docx) dokument via PHP-biblioteket?

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');

Tilføjelse af tekst til Word & formatering via PHP

I modsætning til mange konkurrenter udmærker open source Go-Docx-biblioteket sig i at læse eksisterende filer. Det kan parse en .docx-fil og iterere gennem dens indholdselementer, såsom afsnit og tabeller. Dette gør det til et ideelt valg til dataudtrækning eller dokumentrevision, hvor du skal analysere indhold programmatisk. Følgende eksempel viser, hvordan softwareudviklere kan parse Word-dokumenter i deres egne Go-applikationer.

Hvordan indsætter man tekst i et Word-dokument og anvender formatering via PHP-biblioteket?

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.";

Tilføj & administrer tabeller i Word-filer via PHP

Finjusteret kontrol over typografi er en kernefordel ved dette open source Go-bibliotek. Du kan ændre tekstfarve, skriftstørrelse, justering og endda tilføje hyperlinks eller tabulatorstop via Go-Docx. Dette giver udviklere mulighed for at generere professionelle, brandede dokumenter, der matcher specifikke designkrav uden manuel indgriben.

Hvordan opretter og administrerer man tabeller i Word DOCX-dokumenter via PHP-biblioteket?

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.";

 Dansk