リッチな Word 文書を Web 対応の HTML に変換することは、最新の PHP アプリケーションで頻繁に求められます。 GroupDocs.Conversion Cloud SDK for PHP は、クラウド上で重い処理を担う強力な API を提供します。このチュートリアルでは、SDK を使用して PHP で DOCX を HTML に変換する方法を示します。ライブラリの設定方法、完全なコード例の実行方法、そして cURL 呼び出しで同じ変換を行う方法を学びます。

PHPでDOCXをHTMLに変換する方法 - ステップバイステップ

  1. Composer を使用して SDK をインストールする: 公式の Composer コマンドでライブラリをプロジェクトに追加します。
composer require groupdocs-conversion-cloud
  1. 構成の初期化: Configuration オブジェクトを作成し、App SID と App Key を設定します。
$config = new GroupDocs\Conversion\Cloud\Configuration();
$config->setAppSid('YOUR_APP_SID');
$config->setAppKey('YOUR_APP_KEY');
  1. HTML変換オプションの構成: 画像抽出やページ番号の処理などの設定を調整します。
$htmlOptions = new GroupDocs\Conversion\Cloud\Model\HtmlConvertOptions();
$htmlOptions->setExtractImages(true);
$htmlOptions->setPreserveOriginalPageNumbers(false);
$htmlOptions->setZipOutput(false);
$htmlOptions->setShowHiddenText(false);
$htmlOptions->setRenderToSinglePage(false);
  1. 変換設定の作成: ソースファイル、ターゲット形式を定義し、HTML オプションを添付します。
$convertSettings = new GroupDocs\Conversion\Cloud\Model\ConvertSettings();
$convertSettings->setFilePath('sample.docx');
$convertSettings->setOutputPath('output.html');
$convertSettings->setFormat('html');
$convertSettings->setOptions($htmlOptions);
  1. 変換を実行する: convertDocument メソッドを呼び出し、結果を処理します。
$convertApi = new GroupDocs\Conversion\Cloud\Api\ConvertApi($config);
try {
    $result = $convertApi->convertDocument($convertSettings);
    echo "Conversion succeeded. HTML file saved to: " . $result->getPath() . PHP_EOL;
} catch (Exception $e) {
    echo "Conversion failed: " . $e->getMessage() . PHP_EOL;
}

各クラスとメソッドの詳細については、API リファレンス を参照してください。

完全なコード例: PHPでDOCXからHTMLを生成

次の例は、SDK を使用したフル エンドツーエンド変換を示しています。

<?php
require __DIR__ . '/vendor/autoload.php';

use GroupDocs\Conversion\Cloud\Configuration;
use GroupDocs\Conversion\Cloud\Api\ConvertApi;
use GroupDocs\Conversion\Cloud\Model\ConvertSettings;
use GroupDocs\Conversion\Cloud\Model\HtmlConvertOptions;

$config = new Configuration();
$config->setAppSid('YOUR_APP_SID');
$config->setAppKey('YOUR_APP_KEY');

$convertApi = new ConvertApi($config);

$inputFilePath  = 'sample.docx';
$outputFilePath = 'output.html';

$htmlOptions = new HtmlConvertOptions();
$htmlOptions->setExtractImages(true);               // extract images to separate files
$htmlOptions->setPreserveOriginalPageNumbers(false);
$htmlOptions->setZipOutput(false);                  // generate plain HTML, not a zip archive
$htmlOptions->setShowHiddenText(false);
$htmlOptions->setRenderToSinglePage(false);

$convertSettings = new ConvertSettings();
$convertSettings->setFilePath($inputFilePath);
$convertSettings->setOutputPath($outputFilePath);
$convertSettings->setFormat('html');
$convertSettings->setOptions($htmlOptions);

try {
    $result = $convertApi->convertDocument($convertSettings);
    echo "Conversion succeeded. HTML file saved to: " . $result->getPath() . PHP_EOL;
} catch (Exception $e) {
    echo "Conversion failed: " . $e->getMessage() . PHP_EOL;
}

注: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパス(sample.docxoutput.html)を実際のファイル場所に合わせて更新し、必要な依存関係がすべて正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメントをご参照いただくか、サポートチームにお問い合わせください。

DOCX ファイルを cURL と REST API を使用して HTML に変換

SDK には cURL で呼び出すことができる REST エンドポイントも用意されています。以下は典型的なワークフローです。

  1. アクセストークンを取得する
    YOUR_CLIENT_IDYOUR_CLIENT_SECRET を自分の認証情報に置き換えてください。

    curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
         -H "Content-Type: application/json" \
         -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
    
  2. DOCX ファイルのアップロード
    前のステップで取得したトークンを使用します。

    curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/storage/file/sample.docx" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -F "file=@sample.docx"
    
  3. 変換の開始
    HTMLへの変換をリクエストします。

    curl -X POST "https://api.groupdocs.cloud/v2.0/conversion/convert" \
         -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
         -H "Content-Type: application/json" \
         -d '{
               "filePath": "sample.docx",
               "outputPath": "output.html",
               "format": "html",
               "options": {
                   "extractImages": true,
                   "zipOutput": false
               }
             }'
    
  4. 結果のHTMLをダウンロード

curl -X GET "https://api.groupdocs.cloud/v2.0/conversion/storage/file/output.html" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.html

パラメータの完全な一覧については、公式 API ドキュメントをご覧ください。

インストールと構成 GroupDocs.Conversion Cloud SDK for PHP

composer require groupdocs-conversion-cloud

最新パッケージはリリースページからダウンロードしてください。SDK は PHP 7.4 以降が必要で、有効な認証情報を持つアクティブな GroupDocs Cloud アカウントが必要です。

require __DIR__ . '/vendor/autoload.php';

use GroupDocs\Conversion\Cloud\Configuration;

$config = new Configuration();
$config->setAppSid('YOUR_APP_SID');   // obtain from your GroupDocs Cloud dashboard
$config->setAppKey('YOUR_APP_KEY');

GroupDocs.Conversion Cloud SDK for PHP の DOCX から HTML への機能

  • 画像抽出 - extractImages を使用すると、埋め込まれた画像を個別のファイルに抽出でき、レイアウトの忠実性が保たれます。
  • ページ番号制御 - preserveOriginalPageNumbers を無効にすると、連続した HTML フローを生成できます。
  • プレーン HTML 出力 - zipOutput を false に設定すると、ZIP アーカイブではなく単一の HTML ファイルが生成され、下流処理が簡素化されます。
  • 非表示テキストの処理 - showHiddenText は、最終的な HTML に非表示コンテンツを表示するかどうかを決定します。
  • 単一ページレンダリング - renderToSinglePage を使用すると、すべてのページを 1 つの HTML ドキュメントに結合でき、埋め込みが容易になります。

すべての機能はドキュメントに記載されています。

結論

PHP で DOCX を HTML に変換することは、GroupDocs.Conversion Cloud SDK for PHP を使用すると簡単になります。ライブラリは、サーバー上で Microsoft Office を必要とせずに、複雑な書式設定、画像抽出、ページ管理を処理します。上記の手順に従うことで、ネイティブ SDK 呼び出しでも RESTful cURL リクエストでも、任意の PHP ベースのワークフローに DOCX から HTML への変換を統合できます。製品版で使用する場合は適切なライセンスを取得することを忘れないでください。価格情報は一時ライセンスページにあります。今日から変換を開始し、リッチでウェブ対応のコンテンツをユーザーに提供しましょう。

FAQs

  • DOCX を PHP で HTML に変換する際、追加ソフトをインストールせずに実装するにはどうすればよいですか?
    クラウドベースの SDK はすべての処理を GroupDocs サーバーで実行するため、必要なのは PHP ライブラリと認証情報だけです。

  • 単一のリクエストで複数の DOCX ファイルを変換できますか?
    API はコード内でファイルをループ処理することでバッチ変換をサポートします。各呼び出しはそれぞれ HTML 結果を返します。

  • DOCX ファイル内の画像はどうなりますか?
    extractImages が有効な場合、画像は個別のファイルとして保存され、生成された HTML で参照されるため、直接配信できます。

  • 生成されたHTMLレイアウトをカスタマイズする方法はありますか?
    HTML出力をポストプロセスしたり、renderToSinglePage のような変換オプションを調整して構造に影響を与えることができます。

さらに読む