ספריית PHP חינמית ליצירה וניהול של קבצי DOCX מבוססי תבנית
ספריית PHP קוד פתוח מובילה המאפשרת ליצור, לקרוא, לערוך ולנהל מסמכי Microsoft Word (DOCX) מתבניות. הוסף טבלאות, הכנס טקסט, תמונות ויישם פורמט באמצעות API PHP חינמי
מהי ספריית Go-Docx?
בעולם פיתוח 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.
התחלה עם Go-Docx
הדרך המומלצת לשלב את Go-Docx בפרויקט שלכם היא באמצעות GitHub. אנא השתמשו בפקודה הבאה להתקנה חלקה.
התקנת Go-Docx דרך GitHub
composer require mkdreams/mdword איך ליצור קבצי Word Docx באמצעות ספריית Go?
git clone https://github.com/mkdreams/MDword.git
יצירת מסמכי Word מבוססי תבנית באמצעות PHP
Go-Docx מאפשרת לכם ליצור מסמכים מורכבים מאפס תוך שימוש בגישה מובנית. היא מנהלת את האתחול של סביבת המסמך, כולל ערכות נושא וסגנונות ברירת מחדל, ומוודאת שהקבצים שנוצרים תואמים במלואם למיקרוסופט וורד ולמעבדים מודרניים אחרים. הנה דוגמה פשוטה המדגימה כיצד ליצור קובץ 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.";