将丰富的 Word 文档转换为适用于 Web 的 HTML 是现代 PHP 应用的常见需求。 GroupDocs.Conversion Cloud SDK for PHP 提供了强大的 API,在云端处理繁重的工作。在本教程中,我们演示如何使用 SDK 将 DOCX 转换为 PHP 中的 HTML。您将学习如何设置库、运行完整的代码示例,以及使用 cURL 调用执行相同的转换。

如何在 PHP 中将 DOCX 转换为 HTML - 逐步指南

  1. 通过 Composer 安装 SDK: 使用官方 Composer 命令将库添加到您的项目中。
composer require groupdocs-conversion-cloud
  1. 初始化配置:创建一个 Configuration 对象并设置您的应用 SID 和应用密钥。
$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)以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 和 REST API 将 DOCX 文件转换为 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"}'
  1. 上传 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"
    
  2. 开始转换
    请求将文件转换为 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
           }
         }'
  1. 下载生成的 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 会生成单个 HTML 文件,而不是 ZIP 存档,从而简化后续处理。
  • 隐藏文本处理 - showHiddenText 决定是否在最终 HTML 中显示隐藏内容。
  • 单页渲染 - renderToSinglePage 可以将所有页面合并为一个 HTML 文档,以便更容易嵌入。

所有功能均在文档中描述。

结论

使用 GroupDocs.Conversion Cloud SDK for PHP 在 PHP 中将 DOCX 转换为 HTML 变得简单。该库能够处理复杂的格式、图像提取和页面管理,无需在服务器上安装 Microsoft Office。按照上述步骤操作后,您可以将 DOCX 到 HTML 的转换集成到任何基于 PHP 的工作流中,无论是使用原生 SDK 调用还是 RESTful cURL 请求。请记得获取适用于生产环境的正式许可证;定价详情请参阅 临时许可证页面。立即开始转换,为用户提供丰富的 Web 就绪内容。

常见问题

  • 如何在 PHP 中实现 DOCX 转 HTML,而无需安装额外的软件?
    基于云的 SDK 在 GroupDocs 服务器上完成所有处理,因此您只需 PHP 库和凭据即可。

  • 我可以在单个请求中转换多个 DOCX 文件吗?
    API 通过在代码中循环文件来支持批量转换;每次调用都会返回其自己的 HTML 结果。

  • DOCX 文件中的图像会怎样?
    启用 extractImages 后,图像会保存为单独的文件,并在生成的 HTML 中被引用,您可以直接提供这些图像。

  • 有没有办法自定义生成的HTML布局?
    您可以对HTML输出进行后处理,或调整转换选项,例如 renderToSinglePage,以影响结构。

阅读更多