Laravel 10.x 的 Docx 模板操作類,基於 Mustache 模板語言。該類仍在大力開發中,目前更像是概念驗證。事情會很快發生變化,並且可能會破壞事情。
此套件可協助您使用具有 Mustache 語法的 docx 檔案作為模板,將樣式豐富的文件與來自任何資料來源的資訊合併。它可以替換文字和圖像,並支援基本的 html 樣式(粗體、斜體、底線)。
composer require wrklst/ docxmustache
請檢查下面的依賴項和範例資料夾以了解配置和使用情況。
目前的 HTML 轉換是基本的,僅支援粗體、斜體和下劃線文字的單一運行,而不支援這些文字的組合。它要求所有非 html 值都使用htmlspecialchars($value, ENT_COMPAT, 'UTF-8');
和*[[DONOTESCAPE]]*
前綴,以便該類別知道在將 html 轉換為 openXML 之前不要對其進行轉義。
該圖像必須是可存取的 URL,且圖像格式受支援。 url 值需要放入圖像的 alt 文字描述欄位中。影像將根據佔位符影像的約束重新取樣。 Image值需要用偽標籤進行格式化,例如: [IMG-REPLACE]http://placehold.it/350x150[/IMG-REPLACE]
另請查看範例資料夾中的範例,以基本了解如何使用此類。
轉換為 PDF 需要在伺服器上安裝libreoffice-common
(用於轉換)。在基於 ubuntu/debian 的伺服器上使用sudo apt install libreoffice-common
。如果在將 docx 文件轉換為 pdf 時需要支援 Arial 字體,也請安裝sudo apt-get install ttf-mscorefonts-installer
該套件依賴於幾個 Laravel 特定函數。它可以輕鬆地移植到其他框架或移植為與框架無關的框架。除了 Laravel 依賴項之外,該頁面還使用以下套件:
Laravel 特定依賴項(僅在移植到非 Laravel 環境時相關):
如果您想為此包做出一些貢獻,請隨時提出拉取請求和相應的問題,我們將很樂意審查和討論。
有一些課程可以幫助編寫和/或更改 Word 文件的內容,有些具有商業許可證,有些是免費的。出於我們的特定目的,我們不需要許多庫所具有的大部分功能 - 我們需要一個簡單的解決方案,允許以簡單直接的方式替換值和圖像並遍歷資料。
許多其他庫使用克隆來使用一些自訂模板語法來重複區塊,而不是使用現有的模板語法。我們使用通常的 Mustache 語法,也可以根據需要在多個維度上實現重複內容。
其他用於操作 openXML Word 文件的 PHP 類別: