Безплатна PHP библиотека за създаване и управление на DOCX файлове, базирани на шаблони
Водеща отворена PHP библиотека, позволяваща създаване, четене, модифициране и манипулиране на Microsoft Word (DOCX) документи от шаблони. Добавя таблици, вмъква текст, изображения и прилага форматиране чрез безплатен PHP API
Какво е MDword?
В света на разработката с Golang, работата с Microsoft Word документи (.docx) традиционно е предизвикателство. Много от съществуващите библиотеки са ограничени само до функция за запис или са с висока комерсиална цена. Go-Docx (поддържана от fumiama) запълва тази пропаст като една от най-функционалните отворени библиотеки, проектирана да чете и пише ECMA-376 Office Open XML файлове. Тя е полезна, защото предоставя висококласно API, което абстрахира сложните XML структури, стоящи зад Word файловете.
Това, което прави Go-Docx да се отличава, е обширният му набор от функции: форматиране на текст (цвят, размер, подравняване), вмъкване на изображения, манипулиране на таблици, форми, канви и групи. Независимо дали генерирате фактури, парсирате автобиографии или автоматизирате създаването на отчети, тази библиотека обработва сложни Office Open XML (ECMA-376) структури без нуждата от извикване на външни приложения. Това е форк, воден от общността, който се е развил значително от предшествениците си. За разлика от комерсиални алтернативи като UniOffice (които изискват плащане за пълни функции), Go-Docx остава напълно безплатен под лиценз AGPL-3.0.
Започване с MDword
Препоръчителният начин да включите Go-Docx в проекта си е чрез GitHub. Моля, използвайте следната команда за плавна инсталация.
Инсталирайте MDword чрез Composer
composer require mkdreams/mdword Инсталирайте MDword чрез GitHub
git clone https://github.com/mkdreams/MDword.git
Генериране на Word документи, базирани на шаблони, чрез PHP
Go-Docx ви позволява да създавате сложни документи от нулата, използвайки структуриран подход. Той се грижи за инициализирането на документната среда, включително стандартни теми и стилове, като гарантира, че генерираните от вас файлове са напълно съвместими с Microsoft Word и други съвременни процесори. Ето прост пример, който демонстрира как да генерирате Word Docx файл в Go приложения.
Как да създадем Word (.docx) документ, базиран на шаблон, чрез PHP библиотека?
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 чрез PHP
За разлика от много конкуренти, отворената библиотека Go-Docx се отличава в четенето на съществуващи файлове. Тя може да парсира .docx файл и да обхожда елементите в тялото му, като параграфи и таблици. Това я прави идеален избор за извличане на данни или задачи по одит на документи, където е необходимо програмирано анализиране на съдържанието. Следният пример показва как софтуерните разработчици могат да парсират Word документи в собствените си Go приложения.
Как да вмъкнем текст в Word документ и приложим форматиране чрез PHP библиотека?
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.";
Добавяне и управление на таблици във Word файлове чрез PHP
Фина контрол върху типографията е основна сила на тази отворена Go библиотека. Можете да променяте цвят на текста, размер на шрифта, подравняване и дори да добавяте хипервръзки или табулации чрез Go-Docx. Това позволява на разработчиците да генерират професионални, брандирани документи, отговарящи на специфични изисквания за дизайн без ръчна намеса.
Как да създадем и управляваме таблици в Word DOCX документи чрез PHP библиотека?
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.";