Thư viện PHP miễn phí để Tạo & Quản lý các tệp DOCX dựa trên mẫu

Thư viện PHP mã nguồn mở hàng đầu cho phép Tạo, Đọc, Sửa đổi và Thao tác các tài liệu Microsoft Word (DOCX) từ các mẫu. Thêm Bảng, Chèn Văn bản, Hình ảnh & Áp dụng Định dạng qua API PHP miễn phí

MDword là gì?

Trong thế giới phát triển Golang, việc xử lý các tài liệu Microsoft Word (.docx) luôn là một thách thức. Nhiều thư viện hiện có hoặc chỉ hỗ trợ chức năng "chỉ ghi" hoặc đi kèm với mức giá thương mại cao. Go-Docx (được duy trì bởi fumiama) lấp đầy khoảng trống này như một trong những thư viện mã nguồn mở và chức năng nhất được thiết kế để cả đọc và ghi các tệp ECMA-376 Office Open XML. Nó hữu ích vì cung cấp một API cấp cao trừu tượng hoá các cấu trúc XML phức tạp nằm dưới các tệp Word.

Điều làm cho Go-Docx nổi bật là bộ tính năng toàn diện: định dạng văn bản (màu, kích thước, căn lề), chèn hình ảnh, thao tác bảng, hình dạng, canvas và nhóm. Dù bạn đang tạo hoá đơn, phân tích sơ yếu lý lịch, hay tự động hoá việc tạo báo cáo, thư viện này xử lý các cấu trúc Office Open XML (ECMA-376) phức tạp mà không cần gọi các ứng dụng bên ngoài. Đây là một fork do cộng đồng phát triển, đã tiến triển đáng kể so với các phiên bản trước. Không giống các giải pháp thương mại như UniOffice (yêu cầu trả phí để có đầy đủ tính năng), Go-Docx hoàn toàn miễn phí theo giấy phép AGPL‑3.0.

Previous Next

Bắt đầu với MDword

Cách đề xuất để đưa Go-Docx vào dự án của bạn là sử dụng GitHub. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.

Cài đặt MDword qua Composer

composer require mkdreams/mdword  

Cài đặt MDword qua GitHub

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

Tạo tài liệu Word dựa trên mẫu qua PHP

Go-Docx cho phép bạn tạo các tài liệu phức tạp từ đầu bằng cách sử dụng một phương pháp có cấu trúc. Nó quản lý việc khởi tạo môi trường tài liệu, bao gồm các chủ đề và kiểu mặc định, đảm bảo rằng các tệp bạn tạo hoàn toàn tương thích với Microsoft Word và các bộ xử lý hiện đại khác. Dưới đây là một ví dụ đơn giản minh họa cách tạo một tệp Word Docx trong các ứng dụng Go.

Cách tạo tài liệu Word (.docx) dựa trên mẫu qua Thư viện 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');

Thêm văn bản Word & Định dạng qua PHP

Khác với nhiều đối thủ, thư viện Go-Docx mã nguồn mở xuất sắc trong việc đọc các tệp hiện có. Nó có thể phân tích một tệp .docx và lặp qua các mục trong nội dung, như đoạn văn và bảng. Điều này làm cho nó trở thành lựa chọn lý tưởng cho các nhiệm vụ trích xuất dữ liệu hoặc kiểm toán tài liệu, nơi bạn cần phân tích nội dung một cách lập trình. Ví dụ sau cho thấy cách các nhà phát triển phần mềm có thể phân tích tài liệu Word trong các ứng dụng Go của họ.

Cách chèn văn bản vào tài liệu Word và áp dụng Định dạng qua Thư viện 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.";

Thêm & Quản lý Bảng trong tệp Word qua PHP

Kiểm soát chi tiết về kiểu chữ là một sức mạnh cốt lõi của thư viện Go mã nguồn mở này. Bạn có thể thay đổi màu văn bản, kích thước phông chữ, căn lề và thậm chí thêm liên kết hoặc điểm dừng tab qua Go-Docx. Điều này cho phép các nhà phát triển tạo ra các tài liệu chuyên nghiệp, có thương hiệu, đáp ứng các yêu cầu thiết kế cụ thể mà không cần can thiệp thủ công.

Cách tạo và quản lý Bảng trong tài liệu Word DOCX qua Thư viện 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.";

 Tiếng Việt