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

Previous Next

Начало работы с 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.";

 Русский