Gratis PHP-bibliotek for å opprette og administrere malbaserte DOCX-filer

Ledende åpen kildekode PHP-bibliotek som gjør det mulig å opprette, lese, endre og manipulere Microsoft Word (DOCX) dokumenter fra maler. Legg til tabeller, sett inn tekst, bilder og bruk formatering via gratis PHP API

Hva er Go-Docx-biblioteket?

I Golang-utviklingsverdenen har håndtering av Microsoft Word-dokumenter (.docx) historisk vært en utfordring. Mange eksisterende biblioteker er enten begrenset til kun "skriv‑kun"-funksjonalitet eller kommer med en høy kommersiell prislapp. Go-Docx (vedlikeholdt av fumiama) bygger bro over dette hullet som et av de mest funksjonelle, åpne kildekode‑bibliotekene designet for både å lese og skrive ECMA-376 Office Open XML-filer. Det er nyttig fordi det gir et høyere‑nivå API som abstraherer de komplekse XML-strukturene som ligger under Word-filer.

Det som gjør Go-Docx fremtredende er det omfattende funksjonssettet: tekstformatering (farge, størrelse, justering), bildeinnsetting, tabellmanipulering, former, lerreter og grupper. Enten du genererer fakturaer, parser CV-er eller automatiserer rapportgenerering, håndterer dette biblioteket komplekse Office Open XML (ECMA-376)-strukturer uten overhead av å kalle eksterne applikasjoner. Det er en fellesskapsdrevet gren som har utviklet seg betydelig fra sine forgjengere. I motsetning til kommersielle alternativer som UniOffice (som krever betaling for full funksjonalitet), forblir Go-Docx helt gratis under AGPL-3.0-lisensen.

Previous Next

Kom i gang med Go-Docx

Den anbefalte måten å legge Go-Docx inn i prosjektet ditt på er å bruke GitHub. Vennligst bruk følgende kommando for en enkel installasjon.

Installer Go-Docx via GitHub

composer require mkdreams/mdword  

Hvordan generere Word Docx-filer via Go-biblioteket?

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

Avansert dokumentgenerering via Go

Go-Docx lar deg lage komplekse dokumenter fra bunnen av ved bruk av en strukturert tilnærming. Det håndterer initialiseringen av dokumentmiljøet, inkludert standardtemaer og -stiler, og sikrer at de genererte filene er fullt kompatible med Microsoft Word og andre moderne prosessorer. Her er et enkelt eksempel som viser hvordan du genererer en Word Docx-fil i Go-applikasjoner.

Hvordan parsere Word Docx-dokumenter via Go-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');

Omfattende dokumentparsing via Go API

I motsetning til mange konkurrenter utmerker det åpne kildekode‑Go-Docx‑biblioteket seg i å lese eksisterende filer. Det kan parse en .docx-fil og iterere gjennom kroppselementene, som avsnitt og tabeller. Dette gjør det til et ideelt valg for datauttrekk eller dokumentrevisjonsoppgaver hvor du trenger å analysere innhold programmatisk. Følgende eksempel viser hvordan programvareutviklere kan parse word-dokumenter i sine egne Go-applikasjoner.

Hvordan lage en enkel tabell i en Word-fil via Go-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.";

Dynamisk tabellkonstruksjon i Docx-filer via Go

Finjustert kontroll over typografi er en kjernekraft i dette åpne kildekode‑Go‑biblioteket. Du kan endre tekstfarge, skriftstørrelse, justering, og til og med legge til hyperlenker eller tab‑stopp via Go-Docx. Dette gjør det mulig for utviklere å generere profesjonelle, merkevare‑dokumenter som møter spesifikke designkrav uten manuell inngripen.

Hvordan bruke tekststyling og formatering på Word-dokumenter via Go-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.";

 Norsk