Безкоштовна 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  

Як генерувати файли Word Docx за допомогою бібліотеки Go?

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

Створення Word документів на основі шаблонів за допомогою PHP

Go-Docx дозволяє створювати складні документи з нуля, використовуючи структурований підхід. Він керує ініціалізацією середовища документа, включаючи теми та стилі за замовчуванням, забезпечуючи повну сумісність створених файлів з Microsoft Word та іншими сучасними процесорами. Ось простий приклад, який демонструє, як згенерувати файл Word Docx у застосунках Go.

Як розбирати документи Word Docx за допомогою бібліотеки Go?

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 файлі за допомогою бібліотеки Go?

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 за допомогою бібліотеки Go?

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

 Українська