Select Page

Views: 3

什麼是 OpenTBS?

OpenTBS(Open Template-Based Substitution)是一個基於 PHP 的插件,允許開發者使用 OpenTBS 在 Office Open XML(如 .docx.xlsx.pptx)以及 OpenDocument 格式(如 .odt.ods.odp)的範本中動態插入數據。它基於 TBS(TinyButStrong)引擎,並提供了一種靈活且易於使用的方法來生成動態文件。

為何選擇 OpenTBS?

  1. 無需額外安裝 Office 軟體:OpenTBS 直接操作 Office 文件格式,無需安裝 Microsoft Office 或 LibreOffice。
  2. 輕量級:僅需一個 PHP 文件,即可輕鬆集成到現有項目。
  3. 模板驅動:允許使用標準的 Office 應用程式來設計範本,無需學習額外的標記語言。
  4. 支持多種格式:可處理 .docx.xlsx.pptx.odt 等格式,適用於多種場景,如報表、合同、發票等。

安裝 OpenTBS

OpenTBS 是一個 PHP 插件,可通過下載或使用 Composer 來安裝。

下載 Zip 檔

  1. 前往 官方網站 下載 tbs_class.phptbs_plugin_opentbs.php
  2. 將這兩個文件放入你的 PHP 項目中。

GitHub

說明文件

DEMO 網站

基本使用方法

以下是使用 OpenTBS 生成 Word(.docx)文件的基本示例。

1. 建立 Word 範本

在 Word (.docx) 文件中,使用 [] 來標記動態數據,例如:

2. 編寫 PHP 代碼

require_once('tbs_class.php');
require_once('tbs_plugin_opentbs.php');

// 創建 TBS 實例
$TBS = new clsTinyButStrong;
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);

// 載入範本文件
template = 'template.docx';
$TBS->LoadTemplate($template, OPENTBS_ALREADY_UTF8);

// 設定變數
$data = array(
    'company_name' => 'ABC 公司',
    'date' => date('Y-m-d'),
    'client_name' => '王小明'
);
$TBS->MergeField('var', $data);

// 輸出生成的文件
$output_file = 'output.docx';
$TBS->Show(OPENTBS_DOWNLOAD, $output_file);
exit;

圖片的進階用法

在 Word 模板中設定圖片

打開 Word (.docx) ,選擇一張要被替換的圖片,

設定 TBS 標籤(放入圖片的「替代文字」區域):

選取圖片 → 右鍵 → 圖片格式在「替代文字」欄位輸入以下內容

[img.user_logo;ope=changepic]
pic 是變數名稱,稍後在 PHP 代碼中會用到,這樣 OpenTBS 就知道這張圖片要被替換!

使用 OPENTBS_CHANGE_PICTURE 手動更換圖片

其他參數

要根據原始圖片的框架大小設計的話可以使用

其他 adjust 參數:

參數說明
adjust=inside圖片自動調整以適應框架(推薦
adjust=samewidth圖片的寬度與模板圖片相同
adjust=sameheight圖片的高度與模板圖片相同
adjust=100%圖片維持原始大小

範例

[onshow.pic;ope=changepic;adjust=samewidth;default=current;tagpos=inside]

特殊關鍵字

onshow : 會直接使用php中的同名變數做替換

結論

OpenTBS 是一個強大且輕量的 PHP 插件,能夠讓開發者方便地生成 Word、Excel、PowerPoint 等格式的動態文件,特別適用於報表生成、合約填寫、數據輸出等應用場景,如果你的項目需要動態生成 Office 文檔,可以試試 OpenTBS,它將為你帶來極大的便利!