Бесплатная 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.";