将 DOCX 文件转换为 Markdown 是开发者常见的需求,因为他们希望拥有轻量级、适合版本控制的文档。 Aspose.HTML Cloud SDK for PHP 使您只需几次 API 调用即可在 PHP 中执行此 DOCX 到 MD 的转换。在本指南中,我们将逐步介绍所需的设置,演示完整的代码示例,并展示如何微调输出以获得干净的 Markdown。您还将看到如何使用 cURL 通过 REST 调用相同的转换,以适应云原生场景。

将 DOCX 转换为 MD 的 PHP 步骤

  1. 获取访问令牌 - 使用您的 Aspose Cloud 客户端 ID 和密钥,通过 OAuth 端点请求临时访问令牌。
  2. 上传源 DOCX - 可以使用 UploadFile 方法将文件上传到 Aspose 存储,或提供可公开访问的 URL。
  3. 创建转换请求 - 构建 ConvertDocumentRequest 对象,将 format 设置为 md,并可选地指定转换选项。
  4. 执行转换 - 调用 HtmlApi 类的 ConvertDocument 方法(API 参考)。
  5. 下载 Markdown - 从响应流中获取生成的 .md 文件,并将其本地保存或进一步处理。

PHP 中的 DOCX 转 MD 转换脚本 - 完整代码示例

以下脚本展示了使用 Aspose.HTML Cloud SDK for PHP 的完整端到端转换。

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

use Aspose\HTML\Cloud\Sdk\Api\HtmlApi;
use Aspose\HTML\Cloud\Sdk\Configuration;
use Aspose\HTML\Cloud\Sdk\Model\ConvertDocumentRequest;

// ---------------------------------------------------------------------
// 1. Configure SDK with your client credentials
// ---------------------------------------------------------------------
$config = new Configuration();
$config->setClientId('YOUR_CLIENT_ID');
$config->setClientSecret('YOUR_CLIENT_SECRET');

// ---------------------------------------------------------------------
// 2. Initialize HtmlApi
// ---------------------------------------------------------------------
$htmlApi = new HtmlApi($config);

// ---------------------------------------------------------------------
// 3. Prepare conversion request
// ---------------------------------------------------------------------
$inputFile = 'sample.docx';          // Path to your DOCX file
$outputFormat = 'md';                // Target format
$request = new ConvertDocumentRequest($inputFile, $outputFormat);

// ---------------------------------------------------------------------
// 4. Perform conversion
// ---------------------------------------------------------------------
try {
    $response = $htmlApi->convertDocument($request);
    $markdown = $response->getBody()->getContents();

// -----------------------------------------------------------------
    // 5. Save the Markdown output
    // -----------------------------------------------------------------
    file_put_contents('output.md', $markdown);
    echo "Conversion successful. Markdown saved to output.md\n";
} catch (Exception $e) {
    echo "Error during conversion: " . $e->getMessage() . "\n";
}
?>

注意: 此代码示例演示了核心功能。在项目中使用之前,请确保更新文件路径(sample.docx、output.md),验证所有必需的依赖项已正确安装,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 的基于云的 DOCX 转 Markdown 转换(通过 REST API)

您可以在不使用 SDK 的情况下,通过直接调用 Aspose.HTML Cloud REST 端点来实现相同的结果。

  1. 认证并获取访问令牌
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. 上传源文件 (如果未使用公共 URL)
curl -X PUT "https://api.aspose.cloud/v4.0/html/storage/file/sample.docx" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -H "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" \
        --data-binary "@sample.docx"
  1. 执行转换
curl -X POST "https://api.aspose.cloud/v4.0/html/convert/md" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"inputPath":"sample.docx","outputPath":"output.md"}'
  1. 下载 Markdown 输出
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.md" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -o output.md

有关请求参数的更多详细信息,请参阅官方 API 文档。

在 PHP 中的安装和设置

  1. 通过 Composer 安装 SDK
    composer require aspose-html-cloud
    
  2. 下载最新发布 如果您更喜欢手动安装: Download package。
  3. 配置您的凭据 - 在 Configuration 对象中设置 client_id 和 client_secret(参见代码示例)。
  4. 通过运行简单的 php -r "echo phpinfo();" 脚本来验证安装,以确保自动加载器工作正常。
  5. 为测试应用临时许可证:访问temporary license page并按照说明操作。

DOCX to MD Conversion in PHP with Aspose.HTML

Aspose.HTML 提供基于云的转换引擎,能够完整理解 DOCX 规范,包括复杂的布局、表格和嵌入的图像。通过将文档发送到该服务,您可以将处理工作卸载到可伸缩的后端,从而消除对笨重本地库的需求。

Aspose.HTML 功能

  • 高保真渲染 - 在转换为 Markdown 时保留样式、表格和图像。
  • 多种输出格式 - 支持 HTML、PDF、PNG、JPEG 和 Markdown (MD)。
  • 云原生架构 - 自动扩展,并可通过 HTTPS 在防火墙后工作。
  • 丰富的 API - 通过 REST 和 SDK 提供对转换选项的细粒度控制。

配置转换选项以获得最佳的 Markdown 输出

ConvertDocumentRequest 允许您微调 Markdown 结果:

Option Description
preserveTableStructure 保持表格行和列完整(默认:true)。
includeImages 将图像嵌入为 base64 字符串或保持为外部文件。
headingLevelOffset 调整标题级别以匹配文档层次结构。
removeStyles 去除内联 CSS 以获得更清晰的纯文本输出。

在调用 convertDocument 之前,通过请求模型设置这些选项。

优化转换性能

  • 批量处理多个文件 - 上传多个 DOCX 文件并在单个 API 调用中进行转换,以减少往返延迟。
  • 重用访问令牌 - 令牌有效期为一小时;请缓存它们,而不是为每个文件请求新的令牌。
  • 压缩输入文件 - 更小的负载可加快上传和处理速度。
  • 并行请求 - 对于大批量工作负载,请在遵守服务速率限制的前提下发起并发转换请求。

DOCX 转 MD 转换的最佳实践

  • Validate Input - 确保 DOCX 文件在上传前未损坏。
  • Sanitize Markdown - 转换后,运行 linter 以修复任何格式异常。
  • Store Results Securely - 将生成的 .md 文件保存到受版本控制的仓库中。
  • Monitor API Usage - 通过 Aspose Cloud 仪表板跟踪请求计数和响应时间,以避免限流。

结论

通过利用 Aspose.HTML Cloud SDK for PHP,您可以使用最少的代码可靠地将 DOCX 文件转换为 Markdown。该 SDK 处理复杂布局,保留关键格式,并提供可配置选项以获得干净的 MD 输出。对于生产部署,请从 Aspose 商店购买完整许可证;也可以通过 临时许可证页面 获取用于评估的临时许可证。将提供的代码示例集成到您的工作流中,享受在 PHP 应用程序中无缝的文档转换。

常见问题

在转换过程中如何处理大型 DOCX 文件?
首先将文件上传到 Aspose 存储,然后触发转换。云服务能够高效处理大型文件,您可以通过 API 监控进度。

我可以在一次请求中将多个 DOCX 文件转换为 Markdown 吗?
是的。使用批量转换端点或使用 SDK 循环处理文件,复用相同的访问令牌以提升性能。

如果我需要将图像内联而不是外部文件怎么办?
将 includeImages 选项设置为 true,并选择 embedImages 模式。SDK 将把图像作为 base64 字符串直接嵌入到 Markdown 中。

SDK 是否兼容 PHP 8.x?
Aspose.HTML Cloud SDK for PHP 支持 PHP 7.4 及更高版本,包括 PHP 8.x。确保已启用所需的扩展(cURL、JSON)。

阅读更多