首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 透過 COM 元件將 HTML 轉 RTF (Html2Rtf.dll)

     編輯:PHP 相關知識

前置需求

  1. 下載 Html2Rtf.dll (免費元件)
  2. 以系統管理員身分執行:regsvr32 Html2Rtf.dll 註冊 COM 元件
  3. PHP 啟用 COM 擴充:php.ini 加入 extension=php_com_dotnet.dll
  4. 確認 Windows 服務 COM+ Event System 為啟動狀態

核心程式碼

<?php
try {
    $html2rtf = new COM("Html2Rtf.Html2Rtf") or die("無法建立 COM 物件");
    
    $html2rtf->PreserveImages = true;
    $html2rtf->PageNumbers    = 1;
    $html2rtf->PageNumbersAlignH = 1; // 水平置中
    $html2rtf->PageNumbersAlignV = 5; // 底部
    
    $htmlFile = "input.html";
    $rtfFile  = "output.rtf";
    
    $result = $html2rtf->ConvertFile($htmlFile, $rtfFile, "Header Text", "Footer Text");
    
    if ($result) {
        echo "轉換成功: $rtfFile";
    } else {
        echo "轉換失敗";
    }
} catch (com_exception $e) {
    echo "COM 錯誤: " . $e->getMessage();
}
?>

常見錯誤與解決

錯誤原因解決
Class 'COM' not foundphp_com_dotnet.dll 未載入php.ini 啟用 extension,重啟 Apache/IIS
Failed to create COM objectDLL 未註冊或版位不符確認 regsvr32 成功、PHP 與 DLL 同為 32/64 位元
Access denied權限不足IIS AppPool 身分需有 DLL 讀取權限、DCOM 設定允許啟動
轉換結果排版錯亂HTML 結構不相容簡化 HTML、使用內嵌 CSS、避免 CSS Grid/Flex

跨平台替代方案 (Linux/macOS/Docker)

工具語言特點
PandocHaskell支援 HTML→RTF/DOCX/PDF/MD,指令列/庫呼叫
LibreOffice HeadlessC++soffice --headless --convert-to rtf input.html
wkhtmltopdf + pdf2rtfC++HTML→PDF→RTF 兩步驟
PHPWordPHP純 PHP 產生 DOCX/RTF/ODT,無外部相依
DomPDF + 轉檔PHPHTML→PDF,再用其它工具轉 RTF

PHPWord 範例 (純 PHP,無 COM)

require 'vendor/autoload.php';
use PhpOffice\PhpWord\IOFactory;

$html = file_get_contents('input.html');
$phpWord = IOFactory::load('input.html', 'HTML'); // 需支援 HTML 讀取
$writer = IOFactory::createWriter($phpWord, 'RTF');
$writer->save('output.rtf');
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved